我对jQuery非常陌生,每当用户选择数据列表形式的新选项时,我一直在尝试从我的SQL数据库中获取信息。这是代码:
<form>
<input list="chemicals" name="chemicalsearch">
<datalist id="chemicals">
<?php while ($info3=mysql_fetch_array($info2)) {
echo "<option value='$info3[name]'>$info3[formel]</option>";
}
?>
</datalist>
</form>
<script type="text/javascript">
$('#chemicals').on('change', function() {
var record_id = $(this).val();
var data = {
'id': record_id
};
$.ajax({
type: "GET",
url: '/Chemistry%20Calculator/getchemical.php',
data: data,
success: function(response) {
document.getElementById('formel').innerHTML = data.formel;
},
error: function(jqXHR, textStatus, errorThrown) {
}
});
});
</script>
然后是PHP文件:
<?php
include_once 'connect.php';
$info="SELECT * from chemicals where name='$id'";
$info2=mysql_query($info) or die("Wrong link. This page does not exist.");
$info3=mysql_fetch_array($info2);
$name = $info3['name'];
$formel = $info3['formel'];
$massa = $info3['molmassa'];
$array = array($name, $formel, $massa);
$data = json_encode($array);
echo $data;
?>
请耐心等待我,因为我之前从未使用过jQuery。是的,我知道我正在使用旧的MySQL语法,一旦我开始工作,我就会改变它。 任何帮助将不胜感激:)
答案 0 :(得分:1)
你没有从php或javaScript那边写出究竟是什么问题。但无论如何,请修改关于变量的php语法。如下所示:
<?php while ($info3=mysql_fetch_array($info2)) {
echo '<option value="'.$info3[name].'">'.$info3[formel].'</option>';
}?>
以及稍后的查询... $info='SELECT * from chemicals where name="'.$id.'"'
答案 1 :(得分:0)
如果请求成功,success
方法是一个要调用的函数。该函数传递了三个参数:
dataType
参数或dataFilter
回调函数格式化(如果已指定); jqXHR
(在jQuery 1.4.x中,XMLHttpRequest
)对象。在你的情况下:
success: function(data, textStatus, jqXHR) {
//The "data" returned from server is assigned to HTML element here
document.getElementById('formel').innerHTML = data;
}
附注:不推荐使用mysql_*
函数,而是使用PHP PDO。
编辑:在尝试执行代码$(“#chemicals")....
之前,不要忘记在文件中包含jQuery库。 $ unde的错误就是这个意思。