JavaScript, wie in Ihrer Frage definiert, kann nicht direkt mit MySql arbeiten. Dies liegt daran, dass es nicht auf demselben Computer ausgeführt wird.
JavaScript läuft auf der Client-Seite (im Browser) und Datenbanken existieren normalerweise auf der Server-Seite. Sie müssen wahrscheinlich eine serverseitige Zwischensprache (wie PHP, Java, .Net oder einen serverseitigen JavaScript-Stack wie Node.js) verwenden, um die Abfrage durchzuführen.
Hier ist ein Tutorial, wie man Code schreibt, der PHP, JavaScript und MySql zusammenbindet, wobei der Code sowohl im Browser als auch auf einem Server läuft:
http://www.w3schools.com/php/php_ajax_database.asp
Und hier ist der Code von dieser Seite. Es passt nicht genau zu Ihrem Szenario (es führt eine Abfrage durch und speichert keine Daten in der DB), aber es könnte Ihnen helfen, die Arten von Interaktionen zu verstehen, die Sie benötigen, damit dies funktioniert.
Achten Sie besonders auf diese Code-Bits aus diesem Artikel.
Teile von Javascript:
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
Teile des PHP-Codes:
mysql_select_db("ajax_demo", $con);
$result = mysql_query($sql);
// ...
$row = mysql_fetch_array($result)
mysql_close($con);
Nachdem Sie wissen, wie diese Art von Code funktioniert, empfehle ich Ihnen außerdem, die jQuery-JavaScript-Bibliothek für Ihre AJAX-Aufrufe zu verwenden . Es ist viel sauberer und einfacher zu handhaben als die integrierte AJAX-Unterstützung, und Sie müssen keinen browserspezifischen Code schreiben, da jQuery über eine integrierte Cross-Browser-Unterstützung verfügt. Hier ist die Seite für die jQuery AJAX API-Dokumentation .
Der Code aus dem Artikel
HTML/Javascript-Code:
<html>
<head>
<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Glenn Quagmire</option>
<option value="4">Joseph Swanson</option>
</select>
</form>
<br />
<div id="txtHint"><b>Person info will be listed here.</b></div>
</body>
</html>
PHP-Code:
<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'peter', 'abc123');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("ajax_demo", $con);
$sql="SELECT * FROM user WHERE id = '".$q."'";
$result = mysql_query($sql);
echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>