Dynamische Werte übergeben

Hallo,

wenn man normalerweise über PHP die Werte einer Tabelle übergeben will, kann man doch ein „input type=hidden name=xyz…“ setzen, wobei man dann xyz auf einer anderen Seite darstellen kann.

Wie funktioniert das, wenn ich eine dynamisch ausgelesene Tabelle habe, bei der man mittels eines Radiobuttons eine Bestellung auswählen kann?

So sieht das auf der ersten Seite aus:

$select = „SELECT * FROM tabelle WHERE wert = '“.$wert."’ ";
$abfrage2 = mysql_query($select, $vk);
while ($eintrag = mysql_fetch_object($abfrage2))
{
echo ’

‚.$eintrag->datum.‘
‚.$eintrag->id.‘
‚.$eintrag->bestellstatus.‘
';
}

Und auf der zweiten Seite möchte ich dann die jeweilige Auswahl anzeigen. Wenn ich das mit input type=hidden mache und dann den Wert auslese, dann zeigt er mir immer nur den letzten Datensatz der Tabelle an, egal welche Bestellung ich mittels Radiobutton ausgewählt habe.

So gehts nicht:

if ($HTTP_POST_VARS[‚radiobutton‘] == „radiobutton“)
{
echo $HTTP_POST_VARS[‚datum‘];
}
else
{
echo „Funktioniert nicht“;
}

Wie bringe ich das Skript dazu, genau den Wert zu nehmen, den ich ausgewählt habe?

Grüsse
schuelsche,
die auch gegoogelt hat, aber nichts passendes findet :frowning:

ähm…
ich tu mir grad bissl schwer das zu verstehen was Du willst und was Du machst… aber mal sehn

wenn man normalerweise über PHP die Werte einer Tabelle
übergeben will, kann man doch ein „input type=hidden
name=xyz…“ setzen, wobei man dann xyz auf einer anderen
Seite darstellen kann.

ja

Wie funktioniert das, wenn ich eine dynamisch ausgelesene
Tabelle habe, bei der man mittels eines Radiobuttons eine
Bestellung auswählen kann?

genauso?

So sieht das auf der ersten Seite aus:

> $select = "SELECT \* FROM tabelle WHERE wert = '".$wert."' ";  
> $abfrage2 = mysql\_query($select, $vk);  
> while ($eintrag = mysql\_fetch\_object($abfrage2))  
> {  
> echo '  
>   
>   
>   
> '.$eintrag-\>datum.'   
>   
> '.$eintrag-\>id.'   
>   
>   
> '.$eintrag-\>bestellstatus.'   
> ';  
> }

wenn ich das hier richtig sehe hast Du ne menge Radiobuttons, die alle „Radiobutton“ heissen und alle den Wert „radiobutton“ erhalten… Da ist also kein Hinweis darauf, welche id dieser jeweilige Radiobutton hat. Dazu noch eine anmerkung. Verwende bitte bei codedarstellungen das pre-tag. Damit wirds gleich viel lesbarer

Und auf der zweiten Seite möchte ich dann die jeweilige
Auswahl anzeigen. Wenn ich das mit input type=hidden mache und
dann den Wert auslese, dann zeigt er mir immer nur den letzten
Datensatz der Tabelle an, egal welche Bestellung ich mittels
Radiobutton ausgewählt habe.

ein Radiobutton kann ja schliesslich auch immer nur an einer Stelle gesetzt sein… Ist ja der Sinn eines Radiobuttons, sonst hiesse er checkbox

So gehts nicht:

if ($HTTP_POST_VARS[‚radiobutton‘] == „radiobutton“)
{
echo $HTTP_POST_VARS[‚datum‘];
}
else
{
echo „Funktioniert nicht“;
}

Wie bringe ich das Skript dazu, genau den Wert zu nehmen, den
ich ausgewählt habe?

indem Du ihn auch mit dem Wert bestückst…
Hier mal ein Beispiel eines richtigen radiobuttons:

"Bezeichnung 1"
"Bezeichnung 2"

sobald sie unterschiedlich heissen kannst Du mehrere Radiobuttons aktiv setzen. Solange sie aber den gleichen Namen haben nicht (evtl wenn man mit javascript trickst aber kA…) Wichtig ist halt der value-Wert der bei Dir immer gleich zu sein scheint…

hast du schon mal mit print_r($_POST) geschaut, was alles uebertragen wird?

Hallo,

ich tu mir grad bissl schwer das zu verstehen was Du willst
und was Du machst… aber mal sehn

Sorry, wenn ich mich unklar ausgedrückt habe und danke für’s trotzdem Helfen wollen :smile:

wenn ich das hier richtig sehe hast Du ne menge Radiobuttons,
die alle „Radiobutton“ heissen und alle den Wert „radiobutton“
erhalten…

Ja, ich habe lauter Radiobuttons. Die angezeigte Liste wird dynamisch aus einer Datenbanktabelle ausgelesen. Je nachdem, wieviele Einträge in der Tabelle stehen, gibt es Radiobuttons. Wenn ich 3 Bestellungen habe, dann werden diese 3 Bestellungen mit je einem Radiobutton davor angezeigt und ich kann eine Bestellung auswählen, um mir zu dieser genauere Details anzeigen lassen zu können.

Da ist also kein Hinweis darauf, welche id dieser
jeweilige Radiobutton hat.

Wie mache ich das denn, wenn die Tabelle dynamisch ausgelesen wird? Bei einer statischen HTML-Tabelle kann ich das so machen, wie unten von dir vorgeschlagen. Bei dieser dynamischen Tabelle weiss ich aber vorher nie, wieviele Einträge angezeigt werden und muss dann ja den Wert des Radiobuttons dynamisch zuteilen.

Dazu noch eine anmerkung. Verwende
bitte bei codedarstellungen das pre-tag. Damit wirds gleich
viel lesbarer

Sorry, ich wusste nicht, wie das hier funktioniert. Mit [code] gehts ja nicht.
Also das nächste mal einfach in "

" setzen?



> ein Radiobutton kann ja schliesslich auch immer nur an einer  
> Stelle gesetzt sein... Ist ja der Sinn eines Radiobuttons,  
> sonst hiesse er checkbox


Das möchte ich ja auch so, weil nur eine Bestellung ausgewählt werden können soll. Deshalb keine Checkbox, wo mehrere Auswahlen möglich sind.



> indem Du ihn auch mit dem Wert bestückst...  
> Hier mal ein Beispiel eines richtigen radiobuttons:  
> 
>     
>     
> "Bezeichnung
> 1"
>     
> "Bezeichnung
> 2"
> 
>   
> sobald sie unterschiedlich heissen kannst Du mehrere  
> Radiobuttons aktiv setzen. Solange sie aber den gleichen Namen  
> haben nicht (evtl wenn man mit javascript trickst aber kA...)  
> Wichtig ist halt der value-Wert der bei Dir immer gleich zu  
> sein scheint...


Eben... und der Value-Wert muss sich dynamisch anpassen bzw. er muss dynamisch generiert werden, in Abhängigkeit davon, wieviele Bestellungen angezeigt werden.
Wie kann ich das lösen?

Grüsse
schuelsche

hast du schon mal mit print_r($_POST) geschaut, was alles
uebertragen wird?

Hhhmmm. Also tatsächlich angezeigt wird immer nur der letzte Datensatz der Tabelle. Also es werden als Variablen immer nur die Daten des letzten Datensatzes übertragen. Wenn ich die erste von 3 Bestellungen anwähle, wird trotzdem der Datensatz der 3. nicht angewählten Bestellung ausgegeben.

Grüsse
schuelsche

Sorry, wenn ich mich unklar ausgedrückt habe und danke für’s
trotzdem Helfen wollen :smile:

immer doch :wink: Hoffe ich bin auch ne Hilfe *g*

wenn ich das hier richtig sehe hast Du ne menge Radiobuttons,
die alle „Radiobutton“ heissen und alle den Wert „radiobutton“
erhalten…

Ja, ich habe lauter Radiobuttons. Die angezeigte Liste wird
dynamisch aus einer Datenbanktabelle ausgelesen. Je nachdem,
wieviele Einträge in der Tabelle stehen, gibt es Radiobuttons.
Wenn ich 3 Bestellungen habe, dann werden diese 3 Bestellungen
mit je einem Radiobutton davor angezeigt und ich kann eine
Bestellung auswählen, um mir zu dieser genauere Details
anzeigen lassen zu können.

ok hört sich also recht simpel an…

Da ist also kein Hinweis darauf, welche id dieser
jeweilige Radiobutton hat.

Wie mache ich das denn, wenn die Tabelle dynamisch ausgelesen
wird? Bei einer statischen HTML-Tabelle kann ich das so
machen, wie unten von dir vorgeschlagen. Bei dieser
dynamischen Tabelle weiss ich aber vorher nie, wieviele
Einträge angezeigt werden und muss dann ja den Wert des
Radiobuttons dynamisch zuteilen.

macht doch nix *g*
im Prinzip ist das wahrscheinlich schon wieder zu leicht um die Lösung zu sehen *g*
Also… Erst mal wäre es wichtig zu wissen wie Deine Datenbank eingerichtet ist. Du scheinst aber eine Spalte zu haben, die mit id bezeichnet ist… Also statt

das hier

so…
Jetzt hat jeder Radiobutton einen anderen Wert…

Sprich diese Zeile hier geht nicht mehr:
if ($HTTP_POST_VARS[‚radiobutton‘] == „radiobutton“)
funktioniert definitiv nicht mehr, denn diese Variable ist jetzt mit der ausgewählten id befüllt.
Du kannst es also durch ein
if (is_numeric($HTTP_POST_VARS[‚radiobutton‘]))
ersetzen, denn Deine id’s sollten ja alles zahlen sein, oder? :wink:

Sorry, ich wusste nicht, wie das hier funktioniert. Mit [code]
gehts ja nicht.
Also das nächste mal einfach in „“ setzen?

jo *g* aber auch wenns in Anführungszeichen steht wirds hier ausgeführt ^^

Das möchte ich ja auch so, weil nur eine Bestellung ausgewählt
werden können soll. Deshalb keine Checkbox, wo mehrere
Auswahlen möglich sind.

na dann ideal :wink:

Eben… und der Value-Wert muss sich dynamisch anpassen bzw.
er muss dynamisch generiert werden, in Abhängigkeit davon,
wieviele Bestellungen angezeigt werden.
Wie kann ich das lösen?

das ist das tolle an der while schleife - die gibt Dir ja immer den gerade durchlaufen Wert zurück… Ich denke mal dass $ergebnis->id das gleiche macht wie $ergebnis[id] oder ich hoffe es mal :wink:

Hallo,

Hoffe ich bin auch ne Hilfe *g*

Bist Du :smile:

ok hört sich also recht simpel an…

… ist es wahrscheinlich auch, nur ich komme nicht drauf…

im Prinzip ist das wahrscheinlich schon wieder zu leicht um
die Lösung zu sehen *g*

Vermutlich :wink:

Also… Erst mal wäre es wichtig zu wissen wie Deine Datenbank
eingerichtet ist.

Ich habe eine Tabelle die mehrere Spalten hat. Das ist zum einen id, warenkorbid (da wird dann eine Datei ausgelesen nachher), kid, datum und bestellstatus hat. Die Warenkorbid enthält eine Zeichen-Zahlenfolge, die die gleiche ist, wie der Name einer Datei, der nachher ausgelesen wird.

Also statt

das hier

if (is_numeric($HTTP_POST_VARS[‚radiobutton‘]))

Das funktioniert leider nicht :frowning:
Jetzt wird gar nichts mehr ausgelesen, nicht mal der letzte Datensatz.

Wenn ich das so schreibe, wird nichts ausgelesen, dh es wird überhaupt kein Wert mehr übergeben.

das ist das tolle an der while schleife - die gibt Dir ja
immer den gerade durchlaufen Wert zurück… Ich denke mal dass
$ergebnis->id das gleiche macht wie $ergebnis[id] oder ich
hoffe es mal :wink:

Schade, tut es leider nicht…
Noch andere Möglichkeiten?

Grüsse
schuelsche

ich mach mal besser ganz von vorne…

$suche = $\_POST['suche']; // die id, mit der Deine erste mysql-query abgegeben wird.
$table = "tabelle"; //Deine Tabelle
$wert = "warenkorbid" // Die Tabellenspalte in der Du suchst

$query=mysql\_query("SELECT \* FROM $table WHERE $wert='$suche'");
while ($row=mysql\_fetch\_array[$query])
 {
 $i++;
 echo "Angebot $i ";
 echo "

";
echo „“;
echo "Artikelinformationen: $row[warenkorbid]
";
}
echo „“;

soweit das eine script.
das andere sieht dann in etwa so aus:

$table = "tabelle";
$selection = $\_POST[selection];
echo "Kontrollausgabe: $selection
"; //

probiers mal auf die Art

Hi,

supervielen Dank :smile: Es klappt jetzt. Mit Deiner Hilfestellung hast Du mich auf die richtige Spur gebracht.

Ich habe nun jedem Radiobutton einen eindeutigen Wert aus der Datenbank zugewiesen, den ich dann in eine Variable packe und über die ich dann anschliessend die select-Abfrage machen kann und die entsprechenden Werte aus der Datenbank anzeigen kann.

while ($eintrag = mysql\_fetch\_object($abfrage2))
 {
 echo '
 ';
 $i++;

 echo '';
...


Diesen value kann ich ja dann so auslesen:



    
    $selection = $HTTP\_POST\_VARS['radiobutton'];




... und anschliessen die Variable $selection weiterverwerten. Das funktioniert :smile:)

Dankeschön,
Grüsse
schuelsche