L'Utilisation D'Ajax Pour Remplir Une Boîte De Sélection

Ok, c'est ma toute première tentative de l'Ajax et de sa conduite me fous que j'ai vraiment ne peux pas obtenir ma tête autour de lui. Ce que j'essaie de faire est de remplir la première case avec les clients de la base de données, puis utiliser le code client pour sélectionner tous les vehicleID à partir de la base de données à l'aide de la select.php script.
Ce qui se passe est de la zone est d'être sélectionné, mais lors de la sélection d'un client ne se passe rien.

C'est mon Test.php fichier :

<?php include 'connectmysqli.php'; ?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Select test</title>
<script src="./js/jquery/jquery.js"></script>
<script type="text/javascript" charset="utf-8">
$$('#customer')
.on('change', function () {
$.getJSON('select.php', { customerId: $(this)
.val() }, function (data) {
var options = '';
for (var x = 0; x < data.length; x++) {
options += '<option value="' + data[x][
'id'] + '">' + data[x]['reg'] +
'</option>';
}
$('#vehicle')
.html(options);
});
});
</script>
</head>
<body>
<select id="customer">
<?php
$sql = <<<SQL
SELECT *
FROM `customers`
SQL;
if(!$result = $db->query($sql)){ die('There was an error running the query [' . $db->error . ']');}
while($row = $result->fetch_assoc()){
if ($row['bussinessname'] == ''){$name = $row['title'].' '.$name = $row['firstname'].' '.$name = $row['surname'];}else
{$name = $row['bussinessname'];}
echo '<option value="'.$row['customerID'].'">'.$name.'</option>';
}
echo '</select></p>'; ?>
</select>
<select id="vehicle">
</select>
</body>
</html>

C'est mon select.php fichier :

<?php include 'connectmysqli.php'; ?>
<?php
$id = $_GET['customerId'];
$sql = 'SELECT * FROM vehicles WHERE customerID = ' . $id;
$result = $db->query($sql);
$json = array();
while ($row = $result->fetch_assoc()) {
$json[] = array(
'id' => $row['vehicleID'],
'reg' => $row['reg'] //Don't you want the name?
);
}
echo json_encode($json);
?>

Je tente de mod ce tutoriel pour travailler avec les bases de données, mais jusqu'à présent, je suis à l'échec.
http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

Dans le Chrome de la console j'obtiens l'erreur :

Port error: Could not establish connection. Receiving end does not exist.     miscellaneous_bindings:235
chromeHidden.Port.dispatchOnDisconnect
essayez $(document).on('change', "select#customer", function(){});
pourquoi serait-ce, ?
pouvez-vous vérifier dans la console pour voir si il y a une connexion à établir lorsque l'élément est sélectionné
J'ai bien reçu votre select#customer était dynamicly ajouté. Cela aurait fixe le bogue. Mais ce n'est pas le cas. Avez-vous une erreur dans la console ?
Peut-être que votre json syntaxe est incorrecte. Essayez d'ajouter vos données dans un tableau et ensuite faire echo json_encode($data); exit();

OriginalL'auteur Iain Simpson | 2013-06-28