【发布时间】:2021-07-06 05:19:30
【问题描述】:
我想在使用 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);
}
?>
【问题讨论】: