我已经尝试了一些代码来在同一页面上获得结果。但它无法正常工作。它会在result.php文件中显示结果。坚持ot。我是AJAX的全新人物。请提出任何建议。
AJAX
$("document").ready(function(){
$(".but").submit(function(){
event.preventDefault();
var $form = $( this ),
var myData=$form.find( 'input[name="query"]' ).val(),
$.ajax({
url: 'result.php',
data: myData,
type: 'post',
dataType: "html",
success: function(result){
$('.coupons').text(result)
} }); }); });
result.php
$keyword = mysqli_real_escape_string($con,$_GET['query']); // always escape
$keys = explode(" ", $keyword);
$sql="SELECT c.* , sc.* , sm.* ,ca.* from store_category sc INNER JOIN store_manufacture sm ON sm.sm_id=sc.store_id INNER JOIN categories ca ON ca.cat_id=sc.cat_id INNER JOIN coupons c on c.c_sc_id=sc.sc_id WHERE c.c_name LIKE '%$keyword%' OR sm.sm_brand_name LIKE '%$keyword%' OR ca.cat_name LIKE '%$keyword%' OR c.c_description LIKE '%$keyword%'";
foreach ($keys as $k) {
$sql.="OR c.c_name LIKE '%$k%' OR sm.sm_brand_name LIKE '%$k%' OR ca.cat_name LIKE '%$k%' OR c.c_description LIKE '%$k%'";
}
$result = mysqli_query($con, $sql);
$count=mysqli_num_rows($result);
if($count!=0) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo $row['c_name'];
echo $row ['c_description'];
echo $row['sm_brand_name'];
echo "<br>";
}
}
else
{
echo "no result";
}
答案 0 :(得分:2)
event
中的变量submit(function(){
未定义。
将其作为函数的参数提供:
$("document").ready(function(){
$(".but").submit(function(event){ // here
event.preventDefault();
var $form = $( this ),
var myData=$form.find( 'input[name="query"]' ).val(),
$.ajax({
url: 'result.php',
data: myData,
type: 'post',
dataType: "html",
success: function(result){
$('.coupons').text(result)
}
});
});
});
答案 1 :(得分:0)
除了缺少函数事件属性外,您应该为myData var使用键值对。
var myData = {
query: $form.find( 'input[name="query"]' ).val()
}
然后在结果php中获取值:
echo $_REQUEST['query'];
PS:你应该学会使用PDO以及mysqli。