我目前正在尝试使用ajax更改页面html的搜索字段,以显示用户搜索的结果。
我目前正在尝试的更多内容是:
$_POST
变量(也可以).html
函数中调用的PHP函数中使用此post变量
jQuery显示搜索结果(不起作用)您可以在下面找到我目前的代码。
$(".searchProducts").keydown(function(e)
{
if(e.keyCode == 13)
{
var searchTerms = $(this).val();
$.ajax
({
url: "#",
type: "POST",
dataType: "html",
data: "searchTerms=" + searchTerms,
success : function()
{
alert(searchTerms);
<?php
$t = fopen("test.txt", "w+");
fwrite($t, $_POST['searchTerms']);
fclose($t);
?>
$.ajax
({
url: "#",
type: "GET",
dataType: "html",
success : function()
{
$("#supplierContainer").html("<?php searchResults($_POST['searchTerms']); ?>");
}
})
}
});
}
});
对于php函数
function searchResults($test)
{
echo "<div class='test'>";
echo "<h1>";
echo $test;
echo "</h1>";
echo "</div>";
}
在我的第一个ajax调用中,警报工作并在我的搜索栏中显示值,fopen
函数在我的文件夹中正确创建了一个.txt
文件,其中包含正确的值。但我真的不知道为什么我不能在函数调用中使用post变量。
编辑:我的php函数暂时只是用于测试,它最终将是一个使用MySQL查询中的$ _POST变量来获取和显示结果的函数。
答案 0 :(得分:0)
你弄乱了客户端和服务器端编程。
您需要两个文件: 的 searchResults.php 强>
function searchResults($test)
{
echo "<div class='test'>";
echo "<h1>";
echo $test;
echo "</h1>";
echo "</div>";
}
echo(searchResults($_POST['searchTerms']));
和 的 search.js 强>
$(".searchProducts").keydown(function(e)
{
if(e.keyCode == 13)
{
var searchTerms = $(this).val();
$.ajax
({
url: "searchResults.php",
type: "POST",
dataType: "html",
data: "searchTerms=" + searchTerms,
success : function(data)
{
alert(searchTerms);
console.log(data)
$("#supplierContainer").html(data.response);
}
});
}
});
答案 1 :(得分:0)
From the success part of your ajax code
success : function(message) //(message) is the search response from the function in php
{
alert(searchTerms);
<?php
$t = fopen("test.txt", "w+");
fwrite($t, $_POST['searchTerms']);
fclose($t);
?>
$.ajax
({
url: "#",
type: "GET",
dataType: "html",
success : function()
{
$("#supplierContainer").html(message); //this will prevent you from mixing php and jquery
}
})
}