【发布时间】:2020-04-06 11:52:40
【问题描述】:
我有选择选项,其中包含客户名称。我想将从数据库中获取的电话和电子邮件填充到这两个输入字段中。我是用javacript来实现的,跟着@mr J回答提到HERE。我尝试alert(user); 我得到了选定的值,但没有其他任何反应。
addlead.php
<div class="form-group row">
<label for="inputEmail3" class="col-sm-4 col-form-label">Phone</label>
<div class="col-sm-10">
<input type="text" class="form-control form-control-sm" id="phone" name="phone" placeholder="Enter Phone no.">
</div>
</div>
<div class="form-group row">
<label for="inputEmail3" class="col-sm-4 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control form-control-sm" id="email" name="email" placeholder="Enter Email" onkeyup="checkemail();" required="">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#customer_name').on('change',function(){
var user = $(this).val();
alert(user);
$.ajax({
url : "search2.php",
dataType: 'json',
type: 'POST',
async : false,
data : { user : user},
success : function(data) {
userData = json.parse(data);
$('#phone').val(userData.phone);
$('#email').val(userData.email);
}
});
});
});
</script>
search2.php
$con = mysqli_connect("localhost", "user_crm", "pass", "kaem_crm");
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$user = $_REQUEST['user'];
$sql = mysqli_query($con, "SELECT phone,email FROM customer WHERE Cust_name = '".$user."' ");
$row = mysqli_fetch_array($sql);
json_encode($row);die;
【问题讨论】:
-
请注意,您的代码容易受到 SQL 注入的影响。请阅读stackoverflow.com/questions/332365/…
-
当您打开浏览器的开发者工具栏时,您是否在控制台中看到任何错误?您是否检查了工具栏中的网络选项卡以查看您的 PHP 脚本返回的内容?避免将
alert作为调试手段,如果您改为使用console.log,您可以获得更多信息并以更简洁、更有用的方式。 -
另外,放弃
async : false,你不需要它,你想要在这种情况下异步。当您指定dataType: 'json'时,您不需要userData = json.parse(data);。 -
如果我删除
userData = json.parse(data);,那么我将如何获得$('#phone').val(userData.phone);的价值 -
因为您在 AJAX 请求中设置的
dataType: 'json'选项告诉它它将接收 JSON 作为响应,然后它会自动将其转换为对象。
标签: javascript php jquery