Sagt mir irgendwer warum der die werte nich übergibt

so stop er springt inzwischen in die IF- ANweisung ich komm trotzdem nicht an die Werte die ich versuche zu übergeben

Versuche es momentan mit einem Hidden-Input:
PHP:
<td bgcolor=\"#$i\"><font class=\"style1\"> <input type=\"radio\" name=\"check\" value=\"$ausgabe[HD]\"\"></font><input type=\"hidden\" name=\"HD\" value=\"".$ausgabe["HD"]."\"></td>

//mit der bekannten If-Schleife + meinen verschiedenen Variblendeklarationen:
  
  $radio = $_POST['check'];
    $hd = $_POST["hd"];
    $Festplatte = $HTTP_POST_VARS["HD"];
    $Festplatte2 = $HTTP_POST_VARS["hd"];

    
    
 if ($_POST['check']==$value) 
  {   
    
 echo("Festplatte  ");  
 echo($Festplatte2);
 echo($Festplatte);
 echo($value);
 echo($_POST['value']);
 echo ($ausgabe['HD']);
  echo($hd);
  echo($_POST['HD']);
 echo ("  &auml;ndern");
 
ich weiss immer noch nicht so recht, was du da machst?

Du hast einen Haufen unbekannter Variablen:
  • $value
  • $_POST['value']
  • $ausgabe


Bin inzwischen echt ratlos ich hab immer die Probleme mit checkboxen und Radiobuttons versteh da das Pinzip erinfach nicht!

©derZwerch

Ich versuche es mal zu Erläutern...wie das geht, mit den beiden... das scheint hier öfters für Probleme zu sorgen.

<input type="checkbox">
Checkboxen sollten ein "name"-Attribut haben.... ansonsten werden sie nicht übermittelt.
Mehrere Checkboxen können den selben Namen besitzen. Damit sie dann aber auch alle übermittelt werden, muss der Name mit eckigen Klammern beendet werden,
Code:
<input type="checkbox"name="boxName[]">
<input type="checkbox"name="boxName[]">
Durch diese Klammern werden die Checkboxen als Array übermittelt... ohne diese Klammern würde nur die letzte der aktivierten
Checkboxen dieses Namens übermittelt werden.

Eine Checkbox kann einen "value" haben... muss sie aber nicht.
Da Checkboxen nur übermittelt werden, wenn sie auch gecheckt wurden, kann man per
PHP:
if(isset($_REQUEST['boxName']))
    {
    echo 'Die Checkbox´boxName´ wurde ausgewählt';
    }
ermitteln, ob diese Box ausgewählt wurde.

Der "value" der ausgewählten Checkbox ist in der $_REQUEST-Variablen gespeichert.
Wurde der Checkbox per HTML kein "value" gegeben, ist dies "on".
PHP:
<input type="checkbox"name="boxName">
....
<?php
if(isset($_REQUEST['boxName']))
    {
    echo $_REQUEST['boxName'];
    //Ausgabe 'on'
    }
?>
<input type="checkbox"name="boxName"value="wertDerBox">
....
<?php
if(isset($_REQUEST['boxName']))
    {
    echo $_REQUEST['boxName'];
    //Ausgabe 'wertDerBox'
    }
?>

Verwendet man mehrere Checkboxen mit dem selben Namen, ist es sinnvoll, diesen einen "value" zu geben, da sie ansonsten
alle den selben Wert haben, was keinen Nutzen bringt.
Gespeichert sind diese Checkboxen in einem Array... welchen man auf die übliche Art durchlaufen kann:

PHP:
<input type="checkbox"name="boxName[]"value="Bärbel"checked>
<input type="checkbox"name="boxName[]"value="Fritz"checked>
<input type="checkbox"name="boxName[]"value="Uschi">
<input type="checkbox"name="boxName[]"value="Susi"checked>
<input type="checkbox"name="boxName[]"value="Hans"checked>

....
<?php
if(isset($_REQUEST['boxName']))
    {
    foreach($_REQUEST['boxName'] as $wert)
        {
        echo 'ausgewählt: '.$wert;
        }
    }
//AUSGABE:
// ´ausgewählt: Bärbel´
// ´ausgewählt: Fritz´
// ´ausgewählt: Susi´
// ´ausgewählt: Hans´
?>

Analog dazu verfährt man mit Radiobuttons:
<input type="radio">
Der einzige Unterschied zu "checkboxes" besteht darin, dass man bei der Vergabe des selben Namens für mehrere
Radiobuttons nicht die eckigen Klammern im Anschluss an den Namen notieren muss...
der Grund dafür ist, dass aus einer Gruppe von Radiobuttons mit identischem Namen immer nur ein Button ausgewählt
sein und somit übermittelt werden kann.

Auf jeden Fall sollte man vor dem Zugriff auf zu erwartende Variablen aus Checkboxes/Radiobuttons vorerst wie in den
Codeschnipseln erfragen, ob diese überhaupt übermittelt wurden...
PHP:
<?php
if(isset($_REQUEST['boxName']))
    {
    //Weiterverarbeiten
    }
?>

...da im Gegensatz zu z.B. leeren Textfeldern, diese Buttons überhaupt nicht übermittelt werden, wenn sie nicht aktiviert waren.


Wenn man sich nicht sicher ist, ob und was übermittelt wurde, ist es hilfrteich, sich während der Entwicklungsphase einfach alles
erstmal ausgeben zu lassen, was im Skript ankommt:
PHP:
<?php
echo '<pre>';
print_r($_REQUEST);
echo '</pre>';
?>


($_REQUEST kann man in den Schnipseln natürlich durch die jeweilige Übermittlungsmethode [$_GET/$_POST] ersetzen)


...ich hoffe, ich konnte etwas Licht ins Dunkel bringen.
 
Radiobuttons

Das mit den Radiobuttons klappt bei mir nicht so richtig.
Folgendes Formular

PHP:
<form action="<?php echo $PHP_SELF ?>" method="post">

[...]
<tr>
 <td colspan="2"><input type="Radio" name="liefer" value="gleich" checked>Lieferanschrift entspricht Rechnungsanschrift</td>
</tr>
<tr>
 <td colspan="2"><input type="Radio" name="liefer" value="ungleich">Die Lieferung soll an folgende Adresse erfolgen:</td>
</tr>

<tr>
 <td align="right">Vor- und Nachname:</td>
 <td><input type="Text" name="liefer_name" value='' size="30"></td>
</tr>
<tr>
 <td align="right">Strasse:</td>
 <td><input type="Text" name="liefer_strasse" value='' size="30"></td>
</tr>
<tr>
 <td align="right">PLZ / Ort:</td>
 <td><input type="Text" name="liefer_ort" value='' size="30"></td>
</tr>
<tr>
 <td align="right">Land:</td>
 <td><input type="Text" name="liefer_land" value='' size="30"></td>
</tr>
[...]
</form>

Ich möchte also, wenn der Radiobutton "ungleich" aktiviert ist, meine Daten in der DB updaten. Bei "gleich" werden die Daten der Rechnungsanschrift auch für die Lieferanschrift übernommen:

PHP:
if(isset($_POST['senden'])) {
   if($_POST['liefer'] == "ungleich") { // wenn Lieferanschrift abweicht

       $name  = $_POST['liefer_name'];
       $str   = $_POST['liefer_strasse'];
       $ort   = $_POST['liefer_ort'];
       $land  = $_POST['liefer_land'];
       $update1 = "UPDATE " . $tabelle_ku . " SET liefer_name='$name' WHERE kunden_id=$kid";
       $update2 = "UPDATE " . $tabelle_ku . " SET liefer_strasse='$str' WHERE kunden_id=$kid";
       $update3 = "UPDATE " . $tabelle_ku . " SET liefer_ort='$ort' WHERE kunden_id=$kid";
       $update4 = "UPDATE " . $tabelle_ku . " SET liefer_land='$land' WHERE kunden_id=$kid";

       mysql_query($update1) or die(mysql_error());
       mysql_query($update2) or die(mysql_error());
       mysql_query($update3) or die(mysql_error());
       mysql_query($update4) or die(mysql_error());
   }
   else {
       $update1 = "UPDATE " . $tabelle_ku . " SET liefer_name='$kname' WHERE kunden_id=$kid";
       $update2 = "UPDATE " . $tabelle_ku . " SET liefer_strasse='$kstrasse' WHERE kunden_id=$kid";
       $update3 = "UPDATE " . $tabelle_ku . " SET liefer_ort='$kort' WHERE kunden_id=$kid";
       $update4 = "UPDATE " . $tabelle_ku . " SET liefer_land='$kland' WHERE kunden_id=$kid";

       mysql_query($update1) or die(mysql_error());
       mysql_query($update2) or die(mysql_error());
       mysql_query($update3) or die(mysql_error());
       mysql_query($update4) or die(mysql_error());
   }


       header("Location: kunden_seite3.php?id=$kid");
}

Klappt aber irgendwie nicht, da der Radiobutton nicht zurückgibt. Zudem bekomme ich einen SQL Error:

You have an error in your SQL syntax near ')' at line 1
 
Was 'liefer' betrifft... das sollte auf jeden Fall übermittelt werden, .... zumindest ist in deinem Code nix zu sehen, was dagegen spräche.

Hast du dir $_POST schon mal mit print_r() ausgeben lassen...was steht da drinne?

Zum mysql-Fehler kann man so auch nicht viel sagen.
Bist du sicher, dass $kid gesetzt ist, und wenn ja.... ist es numerisch?

Lass dir mal $update1-4 per echo ausgeben... da sollte der Fehler drinnen stehen....ohne die Variablen zu kennen, kann man da sonst nix dazu sagen.
 
habs hinbekommen. Der SQL-Fehler lag an der Falsch übermittelten $kid und das "liefer" wird auch jetzt gesendet.... Hing auch mit der $kid zusammen.

Danke für deine Hilfe :-)
 
Zurück