Ajax da checkbox

Ali82

Nuovo Utente
10 Apr 2012
7
0
0
Ciao a tutti,
spero che se riusciate ad aiutarmi, ho un semplice problema, praticamente ho una lista di checkbox a cui corrisponde il relativo nome,
e selezionando queste checkbox dovrei passare la lista dei nomi selezionati all'altro file, tramite GET o ancora meglio in POST.

Per ora avrei provato a fare cosi:
PHP:
function selezione() {
. . . 
var lista = document.pietanza.chks;
var contatore=document.pietanza.lenght;
var lista_finale = new Array (0);
var i=0;
while(i<lista.length) {
if (lista[i].checked){
lista_finale.push(list[i]);
}
i++;}
xmlhttp.open("GET","pietanzeordinate.php?q="+lista_finale,true);
xmlhttp.send();
}

...e il form:

PHP:
<form name="pietanza">
<input type="checkbox" name="torta" onChange="selezione()" value="torta" id="torta" />torta</br>
<input type="checkbox" name="brodo" onChange="selezione()" value="brodo" id="brodo" />brodo</br>
<input type="checkbox" name="pasta" onChange="selezione()" value="pasta" id="pasta" />pasta</br>
<input type="checkbox" name="carne" onChange="selezione()" value="carne" id="carne" />carne</br>

Mi sapete aiutare??

grazzzzzie!
 

Ali82

Nuovo Utente
10 Apr 2012
7
0
0
diciamo che in linea di massima il concetto è buono..
solo che non mi va, io ho fatto così:
PHP:
var xmlHttp = getXmlHttpObject();
    
    // come parametri richiede l'identificativo del tag dove mostrare l'esito dell'elaborazione 
    // e la pagina che si occuperà di elaborare i dati e fornire la risposta
    selezione("demo","pietanzeordinate.php"){    
        
        stringaPost();        
        xmlHttp.open('POST', "pietanzeordinate.php", true);    
        xmlHttp.onreadystatechange = function() {
            // nell attesa della risposta possiamo modificare il contenitore inserendo anche un immagine loading
            document.getElementById("demo").innerHTML="Attendere prego";
            if(xmlHttp.readyState == 4) { 
                if (xmlHttp.status == 200) {     
                    // mostriamo il risultato dell'elaborazione
                    document.getElementById("demo").innerHTML=xmlHttp.responseText;
                }
            }
        };    
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");    
        xmlHttp.send(stringa);
    }

    // funzione che preleva i valori dai campi e crea la stringa da passare alla chiamata ajax
    function stringaPost(){
        stringa = "";
        var form = document.pietanza;
        var elementi = form.elements.length;
 
        for(var i = 0; i < elementi; i++){
            if(form.elements[i].value = checked){
                stringa.push(form.elements[i].name);
            } 
        }
    }
        
        
    function getXmlHttpObject() {
        
        var xmlHttp=null;
        if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        }	
        if (window.ActiveXObject) {
            xmlHttp =  new ActiveXObject("Microsoft.XMLHTTP");
        }
	
        return  xmlHttp;
    }
</script>
. . . 

<form name="pietanza"> 
<input type="checkbox" name="torta" onChange="selezione()" value="torta" id="torta" />torta</br> 
<input type="checkbox" name="brodo" onChange="selezione()" value="brodo" id="brodo" />brodo</br> 
<input type="checkbox" name="pasta" onChange="selezione()" value="pasta" id="pasta" />pasta</br> 
<input type="checkbox" name="carne" onChange="selezione()" value="carne" id="carne" />carne</br> 
</form>
<div id="demo">demo!</div>

e per completezza il file pietanzeordinate.php è il seguente:
PHP:
$t=$_POST['stringa'];


echo var_dump($t);


Praticamente quando seleziono una delle checkbox non succede nulla :(

Dove sbaglio?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ciao,
beh, a parte che non hai aperto il tag script e non hai messo function davanti a selezione ti ho modificato altre cosette

prova cosi

PHP:
<script type="text/javascript">
    var xmlHttp = getXmlHttpObject();

   
    function selezione(){    

        stringaPost();        
        xmlHttp.open('POST', "pietanzeordinate.php", true);    
        xmlHttp.onreadystatechange = function() {
            // il messaggio di attesa direi che non serve in questo caso
            if(xmlHttp.readyState == 4) { 
                if (xmlHttp.status == 200) {     
                    // mostriamo il risultato dell'elaborazione
                    document.getElementById("demo").innerHTML=xmlHttp.responseText;
                }
            }
        };    
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");    
        xmlHttp.send(stringa);
    }

    // ho messo checked invece che value
    function stringaPost(){
        stringa = "";
        var form = document.forms[0];
        var elementi = form.elements.length;
 
        for(var i = 0; i < elementi; i++){
            if(i < elementi-1){
                stringa += form.elements[i].name+"="+form.elements[i].checked+"&";
            }else{
                stringa += form.elements[i].name+"="+form.elements[i].checked;
            } 
        }
    }


    function getXmlHttpObject() {

        var xmlHttp=null;
        if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        }    
        if (window.ActiveXObject) {
            xmlHttp =  new ActiveXObject("Microsoft.XMLHTTP");
        }

        return  xmlHttp;
    }
</script>

. . . 

<form method="post" action="ali82.php"> 
    <input type="checkbox" onclick="selezione()" name="torta"/>torta<br/> 
    <input type="checkbox" onclick="selezione()" name="brodo"/>brodo<br/> 
    <input type="checkbox" onclick="selezione()" name="pasta"/>pasta<br/> 
    <input type="checkbox" onclick="selezione()" name="carne"/>carne<br/>
</form>
<div id="demo">demo!</div>

pietanzeordinate.php

PHP:
<?php
// avrai come chiave il name del checkbox e come valore true se selezionato o false se no (formato stringa mi pare)
foreach ($_POST as $key => $value) {
    if ($value == 'true') {
        echo $key . "<br/>";
    }
}
?>
 
Ultima modifica:

Ali82

Nuovo Utente
10 Apr 2012
7
0
0
P E R F E T T O !

..funziona alla meraviglia, grazie delle dritte!!:love:
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
A passare il valore del checkbox e altri campi alla pagina B tramite ajax Ajax 1
R valore value di un id da passare in chiamata ajax Ajax 3
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
P Funzione jQuery Ajax invio file a php jQuery 1
E Php select option e ajax PHP 23
Emix Select concatenate php sql ajax PHP 2
MarcoGrazia Valori di ritorno json via ajax non visti. jQuery 1
felino ASP.net MVC: Exception e chiamata AJAX ASP.NET 1
motleyrulez Ricerca filtro con Ajax PHP 1
max1974 Grafico Ajax Javascript 4
max1974 Struttura $.ajax Ajax 7
C la chiamata ajax non ritorna alcun dato Ajax 1
max1974 Lettura Risultato $.ajax Javascript 1
motleyrulez Chiamata ajax per tabella php PHP 3
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
O [PHP] inviare dati da form e script ajax PHP 0
F limit show datatable ajax Ajax 1
Domenico_Falco1 Rendere dinamico un sito web con chiamate ajax e php e variabili json PHP 12
G Eseguire codice solo al termine della chiamata ajax Ajax 1
L Problema jQuery validation AJAX (PHP 7) PHP 6
max1974 [Javascript] Grafico ajax non funziona Javascript 0
WorldWideWeb Ajax POST con risposta JSON Ajax 2
M leggere con jquery/ajax in una function javascript record di database sql server Javascript 0
A [Javascript] Ajax, Jquery e PHP Javascript 1
D [Javascript] pulsanti per comandi shell con php e ajax Ajax 7
X Problema con jquery e ajax jQuery 2
B [PHP] variabili globali in chiamate ajax PHP 0
B DEBUG - PHP+JS+AJAX PHP 10
Axis18 Creare una barra di avanzamento con $.ajax Ajax 7
otto9due Chiamata ajax su due url è possibile? Ajax 0
G [Javascript] Problema parametro passato con ajax Javascript 4
G Chiamata ajax restituisce errore random Ajax 1
paloppa [PHP] paginazione con ajax PHP 1
filomeni Ajax e https Ajax 4
bubino8 Ajax con risultato si/no Ajax 16
A redirect da pagina php chiamata da ajax PHP 2
L Aggiungere contenuto con ajax durante lo scroll jQuery 1
M Ajax funziona in alcuni siti, in altri no! Ajax 2
otto9due Risposta ajax -> json con php Ajax 3
bubino8 [PHP] split con ajax non funziona PHP 7
C Problema chiamata Ajax Ajax 2
A Visualizzare div quando le immagini sono state uploadate con successo (Ajax) Ajax 0
S Select Concatenate Ajax, php, sql Presentati al Forum 16
otto9due Error anomalo durante invio dati $.ajax Ajax 20
F Interazione tra i form html ajax e php PHP 3
D Come salvare scelta della select "dinamica" ajax-php? Come dato php o attributo value tag option? Ajax 5
D Sono disperato: Menu select dinamici con Ajax e PHP PHP 1

Discussioni simili