在Ajax中填充表单字段

时间:2019-04-22 13:34:12

标签: php jquery sqlite

我正在尝试在发出请求时用AJAX填充表单字段。我能够成功发出请求并获取数据,但是我面临的问题是输入字段没有被填充。

如果我将返回数据填充到div中,它将显示但不显示在表单字段中。

我的HTML代码

<form id="fm" method="post"  novalidate>
<div style="margin-bottom:10px">
<input class="easyui-textbox" name="descr" id="descr"  multiline="true" data-options="label:'Description:'" style="width:100%;">
</div>
<div style="margin-bottom:10px">
<input class="easyui-textbox" name="unit" id="unti" style="width:100%"  data-options="label:'Unit:'">
</div>
<div style="margin-bottom:10px">
<input class="easyui-numberbox" name="rate" id="rate" style="width:100%"  data-options="label:'Rate:'">
</div>
<div style="margin-bottom:10px">
<input class="easyui-numberbox" name="fixing" id="fixing" style="width:100%"  data-options="label:'Fixing:'">
</div>
<div style="margin-bottom:10px">
<input class="easyui-numberbox" name="quantity" id="quantity" style="width:100%"  data-options="label:'Quantity:'">
</div>
</form>

jQuery代码

function load_click(param)
{

    var resp = $("#loadstatus");

    $.ajax({
        type: "POST",
        url: "boqs/load.php",
        data: {},
        dataType: 'json',
        beforeSend: function(){
            resp.html(' <img src="../assets/img/rot_small.gif" />');
        },
        success: function (data) {
            if (Array.isArray(data) && data.length) {
                for (var i = 0; i < data.length; i++) { 
                  //for each   value in the json response
                    $(".descr").val(data[i].descr);
                    $(".unit").val(data[i].unit);
                    $(".rate").val(data[i].rate);
                    $(".fixing").val(data[i].fixing);
                    $(".quantity").val(data[i].quantity);
                    //alert(data[i].descr);
                } // for
                resp.html('');
            } 
         });
        }

PHP源代码

$sql = "SELECT * FROM bill_preparation ORDER BY id DESC LIMIT 1";
$ret2 = $db->query($sql);

$json_resp = array();


while($row = $ret2->fetchArray(SQLITE3_ASSOC)){
    $json_array['descr'] = $row['descr'];
    $json_array['unit'] = $row['unit'];
    $json_array['rate'] =  $row['rate'];
    $json_array['fixing'] = $row['fixing'];
    $json_array['quantity'] =  $row['quantity'];
    //$json_array['amount'] =  $row['amount'];

    array_push($json_resp, $json_array);
}
//$result["rows"] = $items;

echo json_encode($json_resp, true);

1 个答案:

答案 0 :(得分:1)

非常感谢您的支持。 @Patrick的建议将我指向了正确的方向。

我发现使用$(".descr").val(data[i].descr);不能以 easyui 形式工作,所以我使用了$(".descr").textbox('setValue',data[i].descr);

我希望这对与 easyui 合作的人有所帮助。