Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Problem mit Array

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.12.2004, 15:43 Uhr
~Gast
Gast


Hallo,
versuche grad einen Warenkorb zu realisieren habe aber ein Problem mit meinem Array. Ich möchte erreichen, dass wenn der Button ($id12) gedrückt wird, der Wert $id12 als zusätzliches Element in das Array '$WaKoIn[$j]' eingetragen wird, dass funktioniert auch, aber das Problem liegt darin, dass nur ein einziger Wert ins Array eingetragen und ausgegeben wird. Wenn ich den Button zwei mal anklicke, dann müssen im Array zwei Werte stehen und genau dass funktioniert nicht. Wäre froh, wenn mir jemand weiterhelfen könnte.
hier der Code:

PHP 4:
$bestellung=0;

//DB Abfrage
while ($array = mysql_fetch_object($res))
{
....
//Button wird definiert
echo "<div align=center><input type=submit name=$id12 value=---Bestellen---></div>";
....

//Wenn Button gedrückt wurde
if (isset($_REQUEST[$id12]) )
{
    $bestellung++;//Bestellung +1

    for ($j=$bestellung; $j<=$bestellung+1; $j++)
    {
       $WaKoIn[$j]=$id12;

    }  
}

}


// ausgabe Arrayinhalt
    for ($i=0; $i<=$bestellung; $i++)
    {
       echo $WaKoIn[$i];
    }




Bearbeitung von Pablo:

Benutze PHP Tags selber !


Dieser Post wurde am 10.12.2004 um 17:35 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.12.2004, 17:49 Uhr
Pablo
Supertux
(Operator)


also, ich würde dir zuerst vorschlagen, html richtig zu lernen und dann in php umsteigen.


HTML:

<div align=center><input type=submit name=$id12 value=---Bestellen---></div>



ist kein valid HTML Code und wird falschinterpretiert. Man muss Hochkommas für die Atrribute angeben und das tust du nicht. Ich hoffe dir ist auch klar, dass dein <input> nur dann funktioniert, wenn er innerhalb von <form ...> sich befindet. Am besten benutze $_POST statt $_REQUEST.

richtiger HTML Code wäre:

HTML:

<div align="center"><input type="submit" name="xyz" value="Bestellen"></div>



Lass die --- beim Bestellen weg, das nervt und sieht nicht gut aus.

in php umgesetzt


PHP 4:
echo "<div align=\"center\"><input type=\"submit\" name=\"$id12\" value=\"Bestellen\"></div>\n";




Zu deinem Problem: Der Grund warum es nicht funktioniert, ist weil PHP sich nicht merkt, was eine Variable hatte, sprich, wenn man nochmal drauf drückst, dann parst PHP dein Skript und $WaKoIn ist natürlich leer, also wird ein einziges Element angeziegt. Du musst entweder jeden Eintrag in die Datenbank speichern und dann sie nochmal lesen oder du musst Sessions benutzen, damit kannst du Variablen innerhalb einer Session für mehrer Parse-Prozesse benutzen, ohne dass Daten verloren gehen. Mehr Infos hier: http://de2.php.net/manual/de/ref.session.php
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 10.12.2004 um 17:52 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.12.2004, 18:05 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oder du gibst immer das array mit hidden-inputs weiter, am besten mit serialize und unserialize, dafür sind die funktionen nämlich da
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.12.2004, 18:11 Uhr
~Gast
Gast


hmm, habe mein Problem anscheinend etwas falsch geschildert, probiere es also diesmal etwas anders (habe deshalb den Code etwas umgeschrieben).
Ich will erreichen, dass bei jedem Klick auf den Button die Variable $r um 1 erhöht und ausgegeben wird.

PHP 4:
<?php
$r=0;


echo "<div align=center><input type=submit name=h value=---Bestellen---></div>";


while (isset($_REQUEST['h']) )
    {
    $r+=1;
    echo $r."<br>";

    }


?>


PS:Wenn du in PHP, mit eine echo einen HTML-Tag ausgeben willst, dann kannst du es so machen:
echo "<div align=\"center\"><input type=\"submit\" name=\"$id12\" value=\"Bestellen\">
du kannst aber auch:
echo "<div align=center><input type=submit name=$id12 value=Bestellen>
schreiben, also ohne backslash und ohne anführungszeichen, da dies für mich weniger schreibaufwand bedeutet, bevorzuge ich meine (nichts gegen deine Methode, aber HTML kann ich sehr gut und wenn du es ausprobierst, wirst du festellen, dass beide Methoden funktionieren)


Bearbeitung von Pablo:

Benutze PHP tags selber, sonst schleiße den Thread


Dieser Post wurde am 10.12.2004 um 18:40 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.12.2004, 18:34 Uhr
~Gast
Gast


statt dem while sollte da ein if stehen, funzt aber trotzdem nicht richtig
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.12.2004, 18:43 Uhr
Pablo
Supertux
(Operator)


Oh mann.

Zitat:

echo "<div align=center><input type=submit name=h value=---Bestellen---></div>";



hab gesagt, dass das falsch ist, wozu nehme ich mir die Zeit, dir zu helfen, wenn du immer noch falsch machst?

Es muss so sein

PHP 4:
echo "<div align=\"center\"><input type=\"submit\" name=\"$id12\" value=\"---Bestellen---\"></div>\n";



In HTML musst du die Hochkommas " benutzen. Ich rede keinen Unsinn, lese die Dokumentation von w3c.org, wenn du mir nicht glaubst.


Zitat:

nichts gegen deine Methode, aber HTML kann ich sehr gut und wenn du es ausprobierst, wirst du festellen, dass beide Methoden funktionieren



Nein, sobald $id12 aus mehr als ein Wort (mit Leerzeichen) geht das schief. Wieso nicht gleich richtig machen, du ersparst dir 4 Sekunden und machst alles anders als richtigen HTML Code. Es ist als würde ich anfangen zu sprechen ohne die Verben zu konjugieren, jeder versteht und brauche weniger Zeit dafür, aber ist falsch.


Dein Problem mit $r ist genau dasselbe wie das mit $WaKoIn, PHP merkt sich die Variable nicht, außer du arbeitest mit session_start und $_SESSION. (oder ein Haufen <input hiddens> )
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 10.12.2004 um 18:49 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.12.2004, 10:33 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


also, wie pablo schon sagt, ich mach dir hier mal valides html und php draus:


PHP 4:
<?php

$r = ($_REQUEST['r'] ? $_REQUEST['r'] : 0);

if(array_key_exists("h",$_REQUEST))
{
  $r+=1;
  echo $r."<br>";
}
?>

<form action="" method="post">
<input type="hidden" name="r" value="<?= $r ?>">
<div align="center">
  <input type="submit" name="h" value="Bestellen">
</div>
</form>




und wie gesagt, Attribute in HTML immer mit "" einschliessen! Es kann dir sonst passieren das dir neuere Browser die Seite nicht mehr anzeigen! Vor allem wenn du dann evtl irgendwann auf XHTML umsteigst, dann haste ohne "" vollends "verschissen".
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: