Ausgabe $array in Combobox

zamo76

Erfahrenes Mitglied
Hallo Forum,

ich verwende folgendes Script für eine Combobox:
http://www.codeassembly.com/Simple-chained-combobox-plugin-for-jQuery

Es funktioniert alles einwandfrei - ich lese die Daten in combobox.php aus einer Datenbank ein und auch das funktioniert einwandfrei.

Das Problem:
Ich bekomme die Ausgabe nicht hin, weder mit echo noch mit print. Es wird immer nur $row[ort] angezeigt.

PHP:
$array[] = array('$row[ort]' => '$row[ort]');

Danke im Voraus für eure Hilfe!
 
Dann lass da mal die einfachen Anführungszeichen weg.
Und die Zuweisung macht keinen Sinn, vermutlich eher so:

PHP:
$array[] = array($row['ort']);

PHP parst nichts was in einfachen Anführungszeichen steht. Weiterhin benutze bitte die PHP-Tags zum ordentlichen Formatieren von Quelltext.
 
PHP:
$array[] = array('$row[ort]' => '$row[ort]');
Kein Wunder.
item: Strings innerhalb einfacher ' werden nicht geparst.
item: Der Key des Arrays sollte als String definiert sein, also ort innerhalb von ' oder "

PHP:
$array[] = array($row['ort'] => $row['ort']);
 
Sorry für die fehlende Formartierung, aber funktioniert auch nicht mit euren Vorschlägen! Hier mal meine Abfrage und Ausgabe:

PHP:
$sql=mysql_query("SELECT * FROM table WHERE field='XXX'"); 
while($row=mysql_fetch_array($sql)) {

              $array[] = array($row['ort']);
}
 
Hallo saftmeister,

genau das ist die Frage. Wie mache die Ausgabe? Bin Anfänger, also bitte nicht abdrehen! ;-)
 
Du willst das also in eine Combobox (ich vermute mal, du meinst ein Select-Objekt) packen.

Das funktioniert ungefähr so:

PHP:
<form action="hier_dein_script.php" method="post">
<select name="comboboxName">
<?php
$sql=mysql_query("SELECT * FROM table WHERE field='XXX'"); 
while($row=mysql_fetch_array($sql)) {
  echo '<option value="' . $row['ort'] . '">' . $row['ort'] . '</option>';
} 
?>
</select>
<input type="submit" value="Senden"/>
</form>

Zur Erklärung: Du willst zunächst alles in ein Array packen. Ich hab das gleich ausgegeben. Wenn du es über deinen Weg machen willst, musst du noch mal über das Array laufen. Ich gehe davon aus, das du alles schon im Array $array hast:

PHP:
foreach($array as $item)
{
  echo '<option value="' . $item . '">' . $item . '</option>';
}

Das sieht im Prinzip genauso aus, wie mein erstes Beispiel nur das ich das Array nehme statt direkt den Result aus mysql_fetch_row() zu benutzen. Wenn du was nicht verstehst, einfach noch mal fragen.
 
Entweder direkt in der Schleife:

PHP:
$sql=mysql_query("SELECT * FROM table WHERE field='XXX'"); 
while($row=mysql_fetch_array($sql)) {
  echo $row['ort'];
}

Oder mit deinem array:
PHP:
$array = array();
$sql=mysql_query("SELECT * FROM table WHERE field='XXX'"); 
while($row=mysql_fetch_array($sql)) {
  $array[] = $row;
}
foreach($array as $a){
  echo $a;
}
 
also die "normale" Ausgabe mit echo ist mir schon klar, nur in diesem Fall scheint etwas besonderes zu sein. Ich versuche es mal anders zu erklären. Ich möchte in diesem Teil aus dem Originalscript:

PHP:
         {
                $array[] = array('1' => 'Montana');
                $array[] = array('2' => 'New York');    
                $array[] = array('3' => 'Texas');       
          }

die jeweiligen Orte mit meinen Orten aus der Datenbank ersetzen. Hoffentlich habe ich es gut und einfach erklärt!?
Sprich in dieser Form:

PHP:
$array[] = array('1' => '$row[ort]');
 
Dann musst du es vermutlich so machen:

PHP:
foreach($array as $key => $value)
{
  echo '<option value="' . $key . '">' . $value . '</option>';
}

Kommt das hin?
 
Zurück