Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    218

    Form e PHP: problema con più campi uguali

    Ciao a tutti.

    Purtroppo ho cercato qualche soluzione nella mia mente, e l'unica cosa che mi è venuta in mente è fare un COUNT dei checkbox prima di inviarli a php, e successivamente in cancella.php fare un ciclo per recuperare i dati in un array.

    Comunque è molto confusionaria come cosa.

    Allora, esponiamo il problema.

    Ho una tabella html nella quale vi sono righe variabili con dei checkbox variabili che, se selezionati, portano poi con un submit alla cancellazione del valore della riga.

    In pratica la tabella contiene righe e righe variabili dei messaggi privati che un utente ha ricevuto, e barrando questi checkbox per ogni riga è possibile cancellarne uno o più contemporaneamente (per selezionarli tutti uso un ciclo in javascript). Il problema è che tutti i checkbox hanno lo stesso nome, ossia name="check" ma ovvbiamente valore diverso, value=<?=$id?> dove $id è l'id del messaggio che verrà passato al file cancella.php che provvede a cancellarlo dal db.

    Il problema si presenta quando seleziono più di un checkbox: come faccio a ricavare, se usano lo stesso nome, più valori da passare al file cancella?

    Perché ovviamente php mi passa solo l'ultimo dei valori dei checkbox, e non tutti assieme. Soluzioni, aiuti?

  2. #2
    Questo non è un problema PHP, è un problema di Javascript:
    Questo codice dovrebbe fare al caso tuo:

    codice:
    function checkbox_selectAll(FormName, FieldName, CheckValue)	{
    	var objCheckBoxes = getFormField(FormName, FieldName);
    	var countCheckBoxes = objCheckBoxes.length;
    	if(!countCheckBoxes) objCheckBoxes.checked = CheckValue;
    	else for(var i = 0; i < countCheckBoxes; i++) objCheckBoxes[i].checked = CheckValue;
    }
    lo puoi lanciare così:

    checkbox_selectAll("nomeForm","nomeCheckBox", true/false);

    Se metti in cima alla lista dei checkbox il seguente codice è più comodo, infatti spuntando il primo checkbox verranno in automatico spuntati tutti gli altri.

    <input name="checkall" type="checkbox" id="checkall" onchange="checkbox_selectAll('form', 'check', this.checked);"/>


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    218
    Forse mi hai frainteso perché non mi sono spiegato bene.

    questi checkbox per ogni riga è possibile cancellarne uno o più contemporaneamente (per selezionarli tutti uso un ciclo in javascript).
    Il problema è che una volta selezionati tutti (javascript l'ho già implementato) non riesco a estrarre un valore alla volta, perché mi viene restituito solo quello dell'ultimo checkbox.

  4. #4
    Originariamente inviato da Diego_vl
    Forse mi hai frainteso perché non mi sono spiegato bene.



    Il problema è che una volta selezionati tutti (javascript l'ho già implementato) non riesco a estrarre un valore alla volta, perché mi viene restituito solo quello dell'ultimo checkbox.
    Cambia il nome del campo da check a check[].
    Verrà creato un array anzichè essere sovrascritto l'ultimo campo.

    Fa tutto PHP

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    218
    Perfetto, ti ringrazio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.