php - 在另一个输入值的 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);
}
?>
解决方案
您在 livepartname.php 中的条件不起作用,传递的值是 $_POST['text'] 而不是 $_POST['part_no']。POST 参数取决于 ajax 数据。
推荐阅读
- python - 将 Python 列表与外部文件(.xls 或 .csv)进行比较
- python - 如何将两个二进制数合并为一个三进制数
- owasp - OWASP ZAP 导出到 CSV?
- haskell - Haskell“堆栈”不会加载 ghc-mod
- model-view-controller - OData 端点:是否可以编辑文档服务
- php - 检查是否存在节点并检查其属性值
- python - JIRA 创建:TypeError:Timestamp 类型的对象不是 JSON 可序列化的
- mediawiki - 如何添加多种 Google 字体
- sbt - 在 0.13.x 中默认在子项目的上下文中执行“运行”
- javascript - 如何找出 JavaScript 错误对象中的类型 3 错误?