2016-01-13 124 views
-3

的search.php

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post"> 
     <input type="text" name="search" id="search" autocomplete="off"> 
     <button type="submit" class="btn btn-primary">Search</button> 
</form> 
    <?php $search = $_POST['search']; ?> // This is what I've tried. 
    <script type="text/javascript" src="js/search.js"></script> 

我试着加入$search = $_POST['search'];,放入search.js这样var searchTerm = "<?php echo $search; ?>";

search.js

var ajax_arry=[]; 
var ajax_index =0; 
var sctp = 100; 
$(function(){ 
    $('#loading').show(); 
    var searchTerm = "<?php echo $search; ?>"; // This is what I've tried. 
$.ajax({ 
    url:"scroll.php", 
       type:"POST", 
       data:"actionfunction=showData&page=1&search="+searchTerm, // This is what I've tried. 
    cache: false, 
    success: function(response){ 
     $('#loading').hide(); 
     $('#demoajax').html(response); 

    } 

    }); 
$(window).scroll(function(){ 

    var height = $('#demoajax').height(); 
    var scroll_top = $(this).scrollTop(); 
    if(ajax_arry.length>0){ 
    $('#loading').hide(); 
    for(var i=0;i<ajax_arry.length;i++){ 
    ajax_arry[i].abort(); 
    } 
} 
    var page = $('#demoajax').find('.nextpage').val(); 
    var isload = $('#demoajax').find('.isload').val(); 

    if ((($(window).scrollTop()+document.body.clientHeight)==$(window).height()) && isload=='true'){ 
     $('#loading').show(); 
    var ajaxreq = $.ajax({ 
    url:"scroll.php", 
       type:"POST", 
       data:"actionfunction=showData&page="+page, 
    cache: false, 
    success: function(response){ 
     $('#demoajax').find('.nextpage').remove(); 
     $('#demoajax').find('.isload').remove(); 
     $('#loading').hide(); 

     $('#demoajax').append(response); 

    } 

    }); 
    ajax_arry[ajax_index++]= ajaxreq; 

    } 
return false; 

if($(window).scrollTop() == $(window).height()) { 
    alert("bottom!"); 
} 
}); 

}); 

但是当我得到search from data:"actionfunction=showData&page=1&search="+searchTerm on scroll.php查询它不起作用。

function showData($data,$con,$limit){ 
$page = $data['page']; 
if($page==1){ 
    $start = 0; 
} 
else{ 
    $start = ($page-1)*$limit; 
} 
$name = $data['search']; 
$sql = "SELECT * FROM product WHERE p_name LIKE '%$name'"; 
+0

你不能写''里面的文件.js' PHP code' – Saty

+0

与尝试替换'?''到'并在你的php文件中包含js – urfusion

+0

对不起<?php $ search = $ _POST ['search'];'?>'这只是发布时的错误。我编辑过。 –

回答

1

你应该在你的php文件中包含你的Js代码。因为你不能在js文件中编写php代码。而js代码可以用php编写。

所以你的代码应该是这样的。

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> 
    <input type="text" name="search" id="search" autocomplete="off"> 
    <button type="submit" class="btn btn-primary">Search</button> 
</form> 

<?php if ($_POST) { 
    $search = $_POST['search']; 
    ?> 
    <script> 
     var ajax_arry = []; 
     var ajax_index = 0; 
     var sctp = 100; 
     $(function() { 
      $('#loading').show(); 
      var searchTerm = "<?php echo $search; ?>"; // This is what I've tried. 
      $.ajax({ 
       url: "scroll.php", 
       type: "POST", 
       data: "actionfunction=showData&page=1&search=" + searchTerm, // This is what I've tried. 
       cache: false, 
       success: function (response) { 
        $('#loading').hide(); 
        $('#demoajax').html(response); 

       } 

      }); 
      $(window).scroll(function() { 

       var height = $('#demoajax').height(); 
       var scroll_top = $(this).scrollTop(); 
       if (ajax_arry.length > 0) { 
        $('#loading').hide(); 
        for (var i = 0; i < ajax_arry.length; i++) { 
         ajax_arry[i].abort(); 
        } 
       } 
       var page = $('#demoajax').find('.nextpage').val(); 
       var isload = $('#demoajax').find('.isload').val(); 

       if ((($(window).scrollTop() + document.body.clientHeight) == $(window).height()) && isload == 'true') { 
        $('#loading').show(); 
        var ajaxreq = $.ajax({ 
         url: "scroll.php", 
         type: "POST", 
         data: "actionfunction=showData&page=" + page, 
         cache: false, 
         success: function (response) { 
          $('#demoajax').find('.nextpage').remove(); 
          $('#demoajax').find('.isload').remove(); 
          $('#loading').hide(); 

          $('#demoajax').append(response); 

         } 

        }); 
        ajax_arry[ajax_index++] = ajaxreq; 

       } 
       return false; 

       if ($(window).scrollTop() == $(window).height()) { 
        alert("bottom!"); 
       } 
      }); 

     }); 
    </script> 

<?php } ?> 
+0

接受。再次感谢你。 –

0

说明

你做在JavaScript不是 “商店” PHP变量。 PHP是服务器端,JavaScript在客户端工作。他们必须沟通。

解决方案

  1. 用PHP创建一个隐藏的输入,你可以用JavaScript <input type="hidden" name="Language" value="English" id="val1">

  2. 使用ajax sleect使在JavaScript中的PHP文件的调用,使PHP文件返回所需的值

  3. 使用嵌入式JavaScript内部的PHP文件将被服务器编辑给用户。但我不会推荐这一点。

+0

我不知道该怎么做,你能帮我做一个例子吗? –

+0

@ButterToast哪3个? –