尝试使用jQuery从数据库中获取信息

时间:2017-06-23 19:45:04

标签: php jquery mysql

我对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语法,一旦我开始工作,我就会改变它。 任何帮助将不胜感激:)

2 个答案:

答案 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方法是一个要调用的函数。该函数传递了三个参数:

  1. 从服务器返回的数据,根据dataType参数或dataFilter回调函数格式化(如果已指定);
  2. 描述状态的字符串;
  3. jqXHR(在jQuery 1.4.x中,XMLHttpRequest)对象。
  4. 在你的情况下:

          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的错误就是这个意思。