尝试根据选择选项从数据库自动填充输入字段时出错

时间:2018-02-08 08:59:19

标签: javascript php html mysql ajax

脚本

$('#c1').change(function() {
                var serial = $(this).val();
                $.ajax({
                    type : "GET",
                    dataType: 'html',
                    url : "getserial.php",
                    data : {id:serial},
                    success :function(data) {
                        var result = $.parseJSON(data);
                        $('#c4').val(result.curr_serial);
                    }
                })
            })

HTML

<select name="c1" id="c1">
    <option value="">Select a type:</option>
    <option value="JC">JC - Jackets</option>
    <option value="PN">PN - Polo Neck</option>
    <option value="RN">RN - Round Neck</option>
</select>


<input type="text" class="form-control" name="c4" id="c4" maxlength="3">

PHP用于从数据库中获取序列号。

require 'include/dbh.php';
$serial = $_REQUEST['c1'];
$sql = "Select `curr_serial` from serial where product='$serial'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result);
json_encode($row);

我得到的错误是:

Uncaught SyntaxError: Unexpected end of JSON input
   at Function.parse [as parseJSON] (<anonymous>)
   at Object.success (addproduct.php:383)

我无法理解我犯了哪些错误。

1 个答案:

答案 0 :(得分:0)

你的AJAX成功&#39;回调没有收到任何数据。所以$.parseJSON()失败了。

  1. 在您的javascript中,dataType: 'html'应为dataType: 'json'
  2. 因此您不必$.parseJSON(),而data将成为success()回调函数中的对象。请参阅documentation(数据类型部分)。
  3. 在您的PHP中,写下echo json_encode($row);而不只是json_encode($row);
  4. 另外,在echo之前,应用标题:header('Content-Type: application/json');