在同一页面上显示div中的ajax调用结果

时间:2017-05-20 21:24:19

标签: javascript php jquery ajax

我已经尝试了一些代码来在同一页面上获得结果。但它无法正常工作。它会在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";
}

2 个答案:

答案 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。