首页 > 解决方案 > 在另一个输入值的 AJAX 发布后使用返回值更改输入值

问题描述

一旦我使用 ajax 发布它(不提交表单),我想返回一个值。但是,name=part_name 的输入值没有改变。

我有一个如下所示的 HTML 代码。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html><body>
<form><table>

<tr><td><b>Part No.</b></td><td><input type="text" list="part_no_name" autocomplete="off" name="part_no" style="width:300px;" value="" placeholder="e.g. 221-55000-41" required>
<datalist id="part_no_name">
<option value="123">123</option>
<option value="124">124</option>
<option value="125">125</option>
</datalist></td></tr>

<tr><td><b>Part Name</b></td><td><input type="text" autocomplete="off" name="part_name" style="width:300px; border:0;" value=""  readonly></td></tr>

</table></form>
</body></html>

<script>

$(document).ready(function() {

        $('input[name=part_no]').on('change',function(){
            $.ajax({
                type: 'POST',
                url: 'live part name.php',
                dataType: 'json',
                data: {part_no:$(this).val()},
                success: function(data){
                    $('input[name=part_name]').val(data);
                }
            });
        });

</script>

</body></html>

和 live part name.php 如下。

*显然,我只是在这里举一个例子。实际上,我希望它使用 $_POST['part_no'] 对我的数据库执行 SELECT 查询,并在成功时将结果返回给 HTML:function(data)。

<?php session_start();
if (isset($_POST['part_no'])){
    $part_no = mysqli_real_escape_string($con, $_POST['part_no']);
    echo json_encode($part_no);
}
?>

标签: phphtmljqueryajax

解决方案


您在 livepartname.php 中的条件不起作用,传递的值是 $_POST['text'] 而不是 $_POST['part_no']。POST 参数取决于 ajax 数据。


推荐阅读