我进行了搜索,但由于我对php和ajax非常新手,所以我仍然感到困惑,希望有人能帮助我。
我正在使用一个php脚本来访问数据库的一些ajax。我可以将数据echo出来替换网页上的元素。但是,我想再次将数据作为数组接收,以便在javascript中再次操作。
这是php代码:
<?php $q=$_GET["q"];
$con = mysql_connect('server', 'name', 'pass'); if (!$con) //don't connect { die('Could not connect: ' . mysql_error()); //give error }
mysql_select_db("database", $con); //select the MySQL database
$sql="SELECT * FROM table WHERE field = '".$q."'";
$result = mysql_query($sql); //$result is an array
$response = $result;
echo json_encode($response);
echo "<table border='1'>
<tr>
<th>Heading1</th>
<th>Heading2</th>
<th>Heading3</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['field1'] . "</td>";
echo "<td>" . $row['field2'] . "</td>";
echo "<td>" . $row['field3'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
他是用于调用php脚本的ajax/jScript。
function func(var)
{
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) //ready
{
document.getElementById("div2").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getTest.php?q=" + var,true);
xmlhttp.send();
}
您可以看到,它用包含信息的表格替换了 div2。但是,我如何在 jScript 中接收数据数组呢?
谢谢
$result
不是一个数组,而是一个 MySQL 结果句柄。你不能使用json_encode
将其转换为可用的查询结果并在 JavaScript 中使用。 - Marc Bjson_encode()
之前,您必须从$result
中获取结果。 - Michael Berkowski$q
被插入到 SQL 中时没有被转义。 - tadman