Checkbox wird nicht richtig ausgegeben

Luke85

Mitglied
Morgen @ all!

Habe Checkboxen in mein PHP-Skript eingefügt, damit Benutzer nach Ausgabe aller Daten eines Produkts, nur gewünschte Daten auswählen können.

Mit einer Schleife werden die Checkboxen samt Inhalt der DB in einer Tabelle ausgegeben. Soweit klappt alles.

Wähle ich nun Daten aus, werden diese zwar ausgewählt aber nicht richtig im neuen Formular ausgegeben. Das heißt, die Werte, die aus mehreren Satzbausteinen bestehen, werden nicht komplett ausgegeben.

Ich arbeite hier mit Arrays, damit es zu keinen Missverständnissen kommt.

Das Skript ansich funktioniert zu 100%, nur die Geschichte mit den Checkboxen ist noch nicht ganz clear.

Wie lässt sich das Problem beheben.

Error_Messages gibt es auch nicht!

Gruß, Luke.
 
Bitte Quelltext posten.
Da ja dort der Fehler ist müssen wir das schon sehen können ;)

Und ein Screenshot der fehlerhaften Ausgabe wäre auch nicht schlecht, bzw. eine URL zum Selbertesten.
 
Also gut. Hier ein Auszug:

PHP:
<!-- ****************************************** Abfrage für Checkboxen ******************************************* -->
<?php
error_reporting(E_ALL);
if(isset($_POST['gesendet']))
{
    for ($i=0; $i<count($_POST['prdpara']);$i++) 
	{
       echo "<br />value $i = ".$_POST['prdpara'][$i];
	}
}	
	
	
	
?>
<!-- ************************************************************************************************************ -->

<p>



<?php
// Wenn ein Produkt gewählt wurde, zeige es in einer Tabellenzeile

if(isset($zeige_produkt))
    {
	echo '<form name="checkbox" method="post" action="datenblatt_generierenv5.php"';

		$bezeichner=array('Produktnummer', 'ProduktID', 'Art der Karte','Art der Anschlüsse', 'Art der Eingänge', 'Impedanz', 'Frequenz');
        
			echo '
			<br>
			<table width="600" border="1" cellspacing="0" cellpadding="3" class="Stil2">';

				for($z=0;$z<count($zeige_produkt);$z++)
					{
						echo '
						<tr>
						<td><input name="prdpara[]" type="checkbox" value='.$bezeichner[$z].'></td>
						<td width="200">'.$bezeichner[$z].'</td>
						<td width="400">'.$zeige_produkt[$z].'</td>
						</tr>';
					}

        echo '</table>';

	echo '<input type="submit" name="gesendet" value="Drucken"></form>';
    }


?>

Und anbei ein Screenhot.
 

Anhänge

  • auswahl.JPG
    auswahl.JPG
    29 KB · Aufrufe: 19
Ist nen HTML-Problem, weil du deine Value nicht in Abgegrenzt hast, nimmt er nur das erste Wort. Mache einfach " dran.

Statt:
Code:
<td><input name="prdpara[]" type="checkbox" value='.$bezeichner[$z].'></td>

Einfach:
Code:
<td><input name="prdpara[]" type="checkbox" value="'.$bezeichner[$z].'"></td>
 
Ouh man, auf sowas hätte ich selber kommen können. Danke.
Eine letzte Frage noch: Ich brauche ja auch noch die rechte Spalte der Tabelle, sprich die Werte. Die erhalte ich ja so nicht. Zwei Arrays in ein Value gehen ja auch nicht, wie löse ich das denn am elegantesten?


O.K. gelöst :). Und zwar so:
HTML:
<td><input name="prdpara[]" type="checkbox" value="'.$bezeichner[$z].' '.$zeige_produkt[$z].'"></td>
 
Zuletzt bearbeitet:
PHP:
HTML:  ....VALUE="'.$bezeichner.'|||'.$wert.'">....

Verarbeitung:
$value = explode('|||', $_POST['prdpara'][$i])M
$bezeichner = $value[0];
$wert = $value[1];
 
Geht genauso, nur dass ich statt des Leerzeichens zur Trennung ||| genommen habe.
Immerhin hast du in deinem Bezeichner schon Leerzeichen und würdest demnach an der falschen Stelle trennen.
 
Zurück