2012-04-03 16 views
0

Ich habe ein Kontrollkästchen Liste, die ich sie mit Daten aus meinem table.Here füllen ist der Code:überprüfen, ob Checkbox in PHP aktiviert ist

<?php 
mysql_connect("localhost","root",""); 
mysql_select_db("erp"); 


$a="Select * from magazine"; 
$b=mysql_query($a); 

$c=mysql_fetch_array($b); 

while($c=mysql_fetch_array($b)) 

    { 
      print '<input type="checkbox"/>'.$c['den_mag']; 
      echo "</br>"; 

      } 
    if(isset($_POST['den_mag'])) 

{ 
     echo "aaaa"; 

}  
?> 

Es ist eine einfache Abfrage und für jede Daten es nur zeigen, mit ein Kontrollkästchen. Nun, was ich will ist, wenn ich eine Checkbox den Wert dieses Kontrollkästchens in einer Tabelle angezeigt.So, wenn ich check1 mit Wert a, check2 mit Wert b und ich check1 den Wert a an a auszugeben Tischreihe. Wie kann ich das erreichen? Wie kann ich herausfinden, welche Checkbox aktiviert ist?

+0

Vielleicht möchten Sie es stattdessen –

+0

jQuery ist eine clientseitige Sprache, dies zu tun mit jQuery prüfen ist, nutzlos, um festzustellen, welches Kontrollkästchen in PHP aktiviert ist, was die Frage sagt. jQuery hat absolut nichts mit dieser Frage zu tun, ob Sie es glauben oder nicht. –

+0

Das nächste Mal, @Bibu, bitte nehmen Sie sich etwas mehr Zeit, um eine besser formatierte Frage zu schreiben, sowohl in der Rechtschreibung als auch in der Absicht - wir können nicht helfen, wenn wir nicht verstehen, was Sie wollen. – Christian

Antwort

2

Ein paar Anmerkungen:

  • Versuchen SELECT * Abfragen mit zu vermeiden. Wählen Sie die Felder gehen zu verwenden:

    $ sql = 'SELECT id, den_mag VON magazine ';

  • Verwenden bessere Variablennamen. $a und $c machen Sie Ihren Code schwieriger für andere und für sich selbst, wenn Sie zu einem späteren Zeitpunkt zurückkehren. Verwenden Sie aussagekräftigere Variablennamen wie $query_object und $row. Ihr Code sollte fast wie ein Essay lesen, der beschreibt, was Sie tun.

  • In Ihrem Formular verwenden, um ein Array von Elementen. Wenn Sie der Eingabe einen Namen wie selected_magazines[] geben, erhalten Sie am Ende ein Array in Ihren Post-Daten. Mehrfachauswahl

  • Verwenden Sie die Zeilen-ID als Wert des Kontrollkästchenelements. Ihr Array in POST wird dann eine Liste aller IDs sein, die der Benutzer

  • Separate Ihrer Logik aus Ihrer HTML-Generation ausgewählt. Der obere Teil Ihres Skripts sollte sich um alle Logik und Entscheidungen kümmern.Im unteren Bereich geben Sie Ihren HTML-Code aus und vermeiden Sie logische Entscheidungen. Es sorgt für ein Skript, das einfacher zu folgen und zu pflegen sowie zu debuggen ist.

Hier ist ein Beispielskript, diese Ideen mit den Details Einbeziehung Sie gegeben haben:

<?php 
    // FILE: myfile.php 

    mysql_connect("localhost","root",""); 
    mysql_select_db("erp"); 

    if(isset($_POST['selected_magazine'])) { 

     // $_POST['selected_magazine'] will contain selected IDs 

     print 'You selected: '; 
     print '<ul><li>'.implode($_POST['selected_magazine'], '</li><li>').'</li></ul>'; 
     die(); 
    } 

    $sql= ' 
     SELECT 
      `id`, 
      `den_mag` 
     FROM 
      `magazine` 
    '; 
    $query_object=mysql_query($sql); 

    $checkboxes = array(); 
    while($row = mysql_fetch_array($query_object)) { 
     $checkboxes[] = '<input name="selected_magazine[]" value="'.$row['id'].'" type="checkbox" /> '.$row['den_mag']; 
    } 
?> 
<form action="myfile.php" method="post"> 
    <?php print implode('<br>', $checkboxes); ?> 
    <input type="submit" value="Submit" /> 
</form> 
1

Hier gehen Sie:

<html> 
    <input name="test" value="true" type="checkbox" /> 
</html> 

<?php 
$Checkbox1 = "{$_POST['test']}"; 

if($Checkbox1 == 'true'){ 
    // yes, it is checked 
} 
?> 
+0

Warum "{$ _POST ['test']}}" '? –

+0

Der Wert wird als Zeichenfolge gesendet und muss eine Zeichenfolge bleiben. Aber ich denke '$ Checkbox1 = $ _POST ['test'];' wird auch funktionieren. –

+0

Ja, wird es. :) – MichaelRushton

2
<input name="test" type="checkbox" /> 


<?php 

    if(isset($_REQUEST['test'])){ 
     // selected 
    } 

?> 

Bei der Eingabe artige Elemente geben (Eingabe, Textfeld, wählen, Knopf) ein Namensattribut (wie ich), wird der Browser einreichen der Status/Wert des Elements für den Server (wenn das enthaltende Formular übermittelt wurde).


Bei Kontrollkästchen, Sie nicht wirklich brauchen, um den Wert zu überprüfen, sondern nur, dass es existiert. Wenn das Kontrollkästchen nicht ausgewählt ist, wird es nicht festgelegt.


Auch müssen Sie den Client-Server-Ablauf verstehen. PHP kann nicht nach etwas suchen, wenn der Client es nicht sendet.

Und schließlich erwähnte jemand jQuery. jQuery ist einfach JavaScript mit vielleicht etwas Zucker hinzugefügt. Aber der Punkt ist, Sie könnten theoretisch Dinge mit jQuery ändern, so dass es mit der Anfrage gesendet wird (oder nicht). Sie könnten beispielsweise jQuery dazu veranlassen, das Kontrollkästchen zu deaktivieren, bevor das Formular gesendet wird (das Kontrollkästchen wird in diesem Fall nicht gesendet).

Verwandte Themen