PHP konvertiert nicht automatisch mehrere Kontrollkästcheninformationen mit demselben Namen in ein Array wie ASP, was einige Unannehmlichkeiten bei der Verwendung mit sich bringt. Aber es gibt immer noch eine Lösung, nämlich die Verwendung von Javascript für die Vorverarbeitung. Mehrere Kontrollkästchen mit demselben Namen sind in JavaScript immer noch in Form von Arrays vorhanden. Sie können also vor dem Absenden des Formulars mithilfe von JavaScript die Informationen in den Kontrollkästchen in einem Zeichenarray kombinieren und sie den ausgeblendeten Elementen im Formular zuweisen Verwenden Sie PHP. Die Explosionsfunktion analysiert dieses Array, sodass die Kontrollkästcheninformationen übertragen werden können. Nachfolgend finden Sie Beispiele.
Angenommen, es gibt ein solches Formular:
<form name="form1" id="form1" method="post" action="myphp.php" onSubmit="return Checker()">
<input type="checkbox" name="item" value="1">1<br>
<input type="checkbox" name="item" value="2">2<br>
<input type="checkbox" name="item" value="3">3<br>
<input type="checkbox" name="item" value="4">4<br>
<input type="hidden" name="items" value="">
<input type="submit" value="Submit">
</form>
Dieses Formular verfügt über vier Kontrollkästchen, deren Namen alle Elemente sind. Wenn der Benutzer auf die Schaltfläche „Senden“ klickt, wird die Checker-Funktion aufgerufen. Wenn der Checker „true“ zurückgibt, wird das Formular gesendet Formular wird nicht abgesendet. Die Checker-Funktion ist hier die Vorverarbeitungsfunktion, die wir schreiben möchten. Fügen Sie das folgende Javascript im Header-Bereich von HTML hinzu:
<script language="javascript">
<!--
Funktion Checker()
{
form1.items.value = "";
if ( !form1.item.length ) // Es gibt nur ein Kontrollkästchen, form1.item.length = undefiniert
{
if (form1.items.checked)
form1.items.value = form1.item.value;
}
anders
{
for ( i = 0 ; i < form1.item.length ; i++ )
{
if (form1.item(i).checked) // Es gibt ein aktiviertes Kontrollkästchen im Kontrollkästchen {
form1.items.value = form1.item(i).value;
for ( j = i + 1 ; j < form1.item.length ; j++ )
{
if (form1.item(j).checked)
{
form1.items.value += " "; //Leerzeichen als Trennzeichen verwenden form1.items.value += form1.item(j).value;
}
}
brechen;
}
}
}
return true;
}
->
</script>
Verwenden Sie
diese Anweisung in myphp.php:
$items = explosion(" ", $HTTP_POST_VARS["items"]);
Diese Optionen können in Arrays unterteilt werden. Es ist zu beachten, dass der Wert in der Option keine Trennzeichen (hier Leerzeichen) enthalten darf.