我在使用php从html加载输入字段时遇到了一些问题。我正在使用jQuery Ajax $.post
函数将我的数据从输入字段发送到php文件,以便从数据库中进行查询。
我修复了代码。下面的代码工作正常。
这是我的主页
中的html<input class="detail" maxlength="60" name="detail" placeholder="Type to search">
<button class="searchbtn" name="search">Search</button>
这是jQuery Ajax部分
$(".searchbtn").click(function(e) {
makeAjaxRequest();
});
function makeAjaxRequest(){
var input = $(".detail").val();
$.post("search.php",{detail:input},function(data,status){
$('#resultTable tbody').html(data);
});
然后最后一部分是php文件(search.php)
if (isset($_POST['detail'])) {
$data = $_POST['detail'];
$query = "SELECT * FROM products WHERE ".%data;
$result = $conn->query($query) or trigger_error($mysqli->error."[$sql]");
while($row = $result->fetch_assoc()){
$rows[] = $row;
}
}
现在它完美无缺。谢谢你的回答。
答案 0 :(得分:0)
目前你只是发送一个没有键/值的字符串。您需要发送一个键/值对作为您的数据参数,作为字符串或对象(对象更安全,因为它会自动进行urlencoded)
$.post("search.php",{detail:input},function(data,status){
答案 1 :(得分:0)
你可以试试这个。
function makeAjaxRequest(){
var input = $(".detail").val();
$.post("search.php",
{detail: input},
function(data,status){
$('#resultTable tbody').html(data);
});
}
答案 2 :(得分:0)
您正在服务器端页面上解压缩$_POST['detail']
,但在客户端发送时,您发送的内容为$.post("search.php",input
。
数据应以PlainObject或字符串形式发送。我的意思是,每个POST数据都应该有一些索引可以在另一端引用。
由于您使用索引detail
进行提取,因此请在以下内容中添加detail
:
$.post("search.php",{detail:input},function(data,status){