• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

invalid argument foreach()

Barzul

Mitglied
Ich habe ien problem zwar:

Ich übergebe mit einem formular in dem ein klappmenü (<select> ) mit auswahlmöglichkeiten ist, an ein php-script.

HTML:
<form action="char_erstellen2.php" method="post">
<select name="clan" size="1">
<option>Bli</option>
<option>Bla</option>
<option>Blubb</option>
</select>
</form>

Ich nehme jetzt "Bli" und lasse es ausgeben. Funktioniert. jedoch kommt in meinem Script:

Warning: Invalid argument supplied for foreach() in /users/snk/www/char_erstellen2.php on line 46



Hier jetzt die reihe 46 im script:

PHP:
foreach($_POST['clan'] as $key => $clanwahl) //46
{
viele abfragen
}

ich sehe eigentlich keinen fehler >.>

mfg

Barzul
 
mach mal nen var_dump bzw ein print_r auf die Post variable um zu sehen, was da alles drin steht.
Prüft du denn vorher, ob $_POST überhaupt gefüllt ist und ein Array ist?
 
wie gesagt, ich habe $_POST['clan'] ausgeben lassen und es kam "Bli" heraus.

und sorry für die unwissenheit, abe rich hab das nich nie benutzt: Was ist var_dum und print_r?
 
Warum versucht du an der Stelle überhaupt mit einem Array zu arbeiten, wenn du in der Selectbox doch nur einen Eintrag auswählbar machst?

Sinnvoll wäre das zum Beispiel so:

PHP:
<?php

if (isset($_POST['clan'])) {
    foreach ($_POST['clan'] as $k => $v) {
        echo $k . ': ' . $v . '<br />';
    }
}

?>

<form action="" method="post">
    <select name="clan[]" multiple="multiple" size="3">
        <option>Bli</option>
        <option>Bla</option>
        <option>Blubb</option>
    </select>
    <input type="submit" />
</form>

Hängt aber natürlich davon ab, was genau du erreichen willst.
 
hmm..danke, jedoch: wo ist da nen array? *such*

ich möchte einfach erreichen, dass ein registrierter benutzer einen RPG-Charakter erstellen kann. Jedoch scheitert das bei dem script ><
und ich weiss nciht weshalb^^

mfg

Barzul
 
wie gesagt, ich habe $_POST['clan'] ausgeben lassen und es kam "Bli" heraus.

und sorry für die unwissenheit, abe rich hab das nich nie benutzt: Was ist var_dum und print_r?

var_dump und print_r geben dir den inhalt eines Arrays aus. Die Funktion kann man sehr gut zum debuggen nehmen.

PHP:
$array = array("bla"=>"blub", "Lala","Lele","Lulu","name"=>"Johnny");
// pre bewirkt, dass \n auch als Zeilenumbruch dargestellt wird
echo "<pre>";
var_dump($array);
echo "</pre>";


/* Ausgabe wäre dann folgende:

array
  'bla' => string 'blub' (length=4)
  0 => string 'Lala' (length=4)
  1 => string 'Lele' (length=4)
  2 => string 'Lulu' (length=4)
  'name' => string 'Johnny' (length=6)

*/
 
danke ;)

er zeigt folgendes an:

array(8) {
["vorname"]=>
string(6) "Aro"
["nachname"]=>
string(4) "Momochi"
["geschlecht"]=>
string(4) "mann"
["alter"]=>
string(2) "15"
["clan"]=>
string(7) "Hyouton"
["vorteil"]=>
string(23) "Guter Umgang mit Chakra"
["nachteil"]=>
string(20) "Schlecht in Genjutsu"
["dorf"]=>
string(4) "Kiri"

--------------------------------------

@mermshaus: Achso, jetzt weiss ich, was du meinst^^ das html,
welches ich gepostet habe, ist nur ein teil von vielen angaben^^ daher ist $_POST array
 
hmm..danke, jedoch: wo ist da nen array? *such*

In deinem ersten Post versuchst du, mit der foreach-Schleife ein Array zu durchlaufen. Genau das verursacht den Fehler, denn $_POST['clan'] ist kein Array.

Soll nur ein Eintrag der Selectbox gewählt werden können, braucht du an der Stelle keine foreach-Schleife. Sollen mehrere Einträge gewählt werden können, siehe mein Beispiel.

Edit: Sehe den neuen Post jetzt erst. Ich hoffe mal, die Antwort hier ergibt noch genug Sinn. ;)
 
danke ;)

er zeigt folgendes an:

array(8) {
["vorname"]=>
string(6) "Aro"
["nachname"]=>
string(4) "Momochi"
["geschlecht"]=>
string(4) "mann"
["alter"]=>
string(2) "15"
["clan"]=>
string(7) "Hyouton"
["vorteil"]=>
string(23) "Guter Umgang mit Chakra"
["nachteil"]=>
string(20) "Schlecht in Genjutsu"
["dorf"]=>
string(4) "Kiri"

Als Tipp damit du Code richtig posten kannst ohne dass so schöne Smileys da drin stehen für dich mal zum drüber gucken :)
Wie verwende ich Code-Tags im Forum?

Hoffe durch mermshaus weisst du jetzt wieso es nicht funktioniert hat :D Da du kein Array angegeben hast ;)
 
Zurück
Oben