【发布时间】:2017-05-18 12:39:55
【问题描述】:
我正在尝试在 mysql 数据库中搜索表单输入值,如果输入值存在于数据库中,那么我想以相同的表单显示匹配的输入行详细信息。请帮助我猜我在我的 php 代码中做错了什么。
谢谢
index.php
<div class="col-sm-6">
<div class="form-group">
<label for="campaignname">Link</label>
<input type="text" class="form-control" id="link" name="link" placeholder="Link" required>
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label for="campaignname">First Name</label>
<input type="text" class="form-control" id="suppfirstname" name="suppfirstname" placeholder="First Name" required>
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label for="campaignname">Last Name</label>
<input type="text" class="form-control" id="supplastname" name="supplastname" placeholder="Last Name" required>
</div>
Jquery 调用 Ajax
<script>
$(document).ready(function(){
$('#link').change(function(){
var link = $(this).val();
$.ajax({
url:"php_action/addnewlead/getlinkdata.php",
method:"POST",
data:{link:link},
success:function(response){
$("#suppfirstname").val(response.firstname);
$("#supplastname").val(response.lastname);
}
});
});
});
</script>
getlinkdata.php
<?php
$connect = mysqli_connect("localhost", "root", "", "test");
$output = '';
if(isset($_POST["link"]))
{
if($_POST["link"] != '')
{
$sql = "SELECT * FROM customertable WHERE link = '".$_POST["link"]."'";
}
else
{
$sql = "SELECT * FROM customertable WHERE link = 'jesusischrist'";
// I dont want to load any data here so used wrong code
}
$result = mysqli_query($connect, $sql);
while($row = mysqli_fetch_array($result))
{
$output = $result;
}
echo $output;
}
【问题讨论】:
-
$output = $result;这一行是错误的。应该是$output = $row['FIELDNAME'];此外,如果只有 1 个结果,则不需要循环。 -
用户如何输入数据库中存在的确切名称?您可以提供下拉列表或 jquery 自动完成
-
在这样的查询中直接使用用户数据是非常危险的!你应该真的考虑使用PPS : Prepared Parameterized Statements。这将有助于Preventing SQL injection
-
谢谢老学徒
标签: php jquery mysql ajax search