Ausgabe $array in Combobox

So, wir analysieren dein Problem jetzt Stück für Stück. Du machst da unten ein json_encode($array). Das wird dann vermutlich innerhalb eines Java-Scripts verwendet.

Zeig doch mal den HTML+Javascript für dein Dropdown-Menü.
 
Also so funktioniert es bei mir:

PHP:
<?php
$m = mysqli_connect("127.0.0.1", "test") or die(mysqli_error());
mysqli_select_db($m, "test") or die(mysqli_error());


$array = array();
if ($_GET['_name'] == 'country') 
{
	 if ( $_GET['_value'] == 3 )//usa
	 {
	    $query = "SELECT state FROM states WHERE country = 'Usa'";
	    $i = 1;
		$select = mysqli_query($m, $query) or die(mysqli_error());
		while($row = mysqli_fetch_assoc($select))
		{
			$array[] = array($i++ => $row['state']);
		}
		mysqli_free_result($select);
	  } else
	  {
		$array[] = array('0' => 'No state');
	  }
} elseif ($_GET['_name'] == 'state') 
{
	 if ( $_GET['_value'] == 2 )//New York
	 {
		$array[] = array('1' => 'New York');
		$array[] = array('2' => 'Another city');	
	  } else
	  {
		$array[] = array('0' => 'No city');
	}
} else
{
	$array[] = array('1' => 'Data 1');
	$array[] = array('2' => 'Data 2');	
	$array[] = array('3' => 'Data 3');	
}
echo json_encode( $array );
?>

Ich habe mir eine Tabelle in der Datenbank "test" angelegt:

PHP:
-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `states`
--

CREATE TABLE IF NOT EXISTS `states` (
  `state` varchar(20) NOT NULL,
  `country` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Daten für Tabelle `states`
--

INSERT INTO `states` (`state`, `country`) VALUES
('New York', 'Usa'),
('Montana', 'Usa'),
('Texas', 'Usa');

Außerdem habe ich mysql_* nicht mehr, sondern nur noch mysqli_*.

Wenn du nicht weiter kommst, kannst du direkt mal die combobox.php mit entsprechenden Parametern im GET aufrufen:

http://localhost/jquerychained/combobox.php?_name=country&_value=3

Die URL musst du natürlich auf deine Bedürfnisse anpassen.

Mach das mal und zeig die Ausgabe der Seite.
 
also ich scheine der Lösung näher zu kommen. $row[ort] taucht nicht mehr auf, dafür halt nichts. Ich überprüfe aber nochmal meine Anpassungen da ich ja eine andere Tabellenstruktur habe.
 
Falls das dich weiter bringt: Schreib mal in die erste (bei mir oberhalb der ersten mysql-Commands) noch ein

PHP:
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

Vielleicht werden bei dir nicht alle Fehler angezeigt.
 
aja, hab ich mir gedacht! also ich benutze eigentlich:

PHP:
mysql_connect("localhost","User","Passwort");  // User und Passwort
mysql_select_db("tk_users");  // Name der Datenbank

Meine Tabelle heisst also tk_users. Jetzt zeigt er mir bei Deiner Verbindung einen Fehler an. Muss ich Deine und meine Verbindung kombinieren?
 
Meinst du den Rückgabewert von mysql_connect()? Nunja, ersten die mysqli_*-Funktionen wollen das unbedingt haben, zweitens ist es so ohnehin korrekter. mysql_connect() liefert einen Connection-Descriptor zurück, also eine Verbindungs-Kennung, wenn du so willst.

Welchen Fehler liefert er denn zurück? Am besten bei den Funktionen mysql_connect(), mysql_select_db() und mysql_query() immer eine Prüfung dahinter setzen, die dir sagt, was ungefähr schiefgelaufen ist:

PHP:
mysql_connect(...) or die(mysql_error());
mysql_select_db(...) or die(mysql_error());
/*... usw ... */
 
soooooo, also wenn ich die URL direkt aufrufe funktioniert es:

PHP:
[{"1":"München"},{"2":"Hamburg"},{"3":"Stuttgart"},{"4":"Berlin"}]

Allerdings werden Sie im Dropdown nicht angezeigt. Aber ich schaue nochmal ob ich was vergessen habe!
 
Zurück