2011-08-27 148 views
1

这是我的第一篇文章,希望有人会帮我解决这个问题。我有这样的MySQL查询:JavaScript将价值传递给php查询

$query_history = " 
      SELECT ProductProvider AS NameSS, type, StoreOpinionDate AS dating 
      FROM cd_stores 
      WHERE UserFID = '".$row_Profile['UserFID']."' 

      UNION ALL 

      SELECT BrandName AS NameSS, type, BrandOpinionDate AS dating 
      FROM cd_brandopinions 
      WHERE UserFID = '".$row_Profile['UserFID']."' 

      UNION ALL 

      SELECT CommentTitle AS NameSS, type, CommentDate AS dating 
      from cd_comments 
      WHERE UserFID = '".$row_Profile['UserFID']."' 

      UNION ALL 

      SELECT brands.ProductBrand AS NameSS, type, date AS dating 
       from brandtrack INNER JOIN brands 
      WHERE UserFID = '".$row_Profile['UserFID']."' and brandtrack.BrandID = brands.BrandID 

      ORDER BY dating DESC 
      LIMIT 9 
"; 

和follwing的javascript:

<script type="text/javascript" src="../admin/config/js/jquery/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $("#loadmorebutton").click(function(){ 
       $('#loadmorebutton').html('<img src="facebook_style_loader.gif" />'); 
       $.ajax({ 
        url: "facebook_style_ajax_more.php?lastid=" + $(".postitem:last").attr("dating"), 
        success: function(html){ 
         if(html){ 
          $("#postswrapper").append(html); 
          $('#loadmorebutton').html('Load More'); 
         }else{ 
          $('#loadmorebutton').replaceWith('<center>No more posts to show.</center>'); 
         } 
        } 
       }); 
      }); 
     }); 
    </script> 

现在的问题是,当我的形式按内提交按钮值“约会”从MySQL查询不上acebook_style_ajax_more通过。使用上面的JavaScript和Im获得空值传递的PHP页面。我需要改变JS代码内部的工作吗?

感谢

+4

哇 - 你需要保护你对SQL注入的查询,你最好解决您的AJAX发行前http://php.net/manual/en/阅读本security.database.sql-injection.php – JohnJohnGa

+0

我们可以看到你的html代码片段吗?至少 –

+0

我修改以下脚本http://hycus.com/2011/03/16/load-more-like-facebook-or-old-twitter-using-php-mysql-jquery/和JohnJohn,这只是测试的例子不是活的脚本,我熟悉注射,我只是链接查询举例 –

回答

0

使用Firebug或Chrome开发扩展看到XHR请求正在通过你的javacript的PHP代码发布。首先看到它可能是你的选择器没有从html中提取值。如果xhr没有问题,可以转到您的php并尝试回应请求参数。希望这可以帮助。

0

我想你可能在这里有一个问题.. 试图提醒值$(“postitem:最后一个‘)ATTR(’约会”) 并确保它获得通过到PHP页面

url: "facebook_style_ajax_more.php?lastid=" + $(".postitem:last").attr("dating") 

此外,如果你正在尝试发送ID为“约会”字段的值,那么它应该是

url: "facebook_style_ajax_more.php?lastid=" + $("#dating").val() 

新增: 也是你的代码的代码犯规表演,其中facebook_style_ajax_more.php正在处理$ _REQUEST [“lastid”] a nd回显ajax函数处理的内容。

+0

我试图修改这个脚本http://hycus.com/2011/03/16/load-more-like-facebook-or-old -twitter-using-php-mysql-jquery /并使其适用于我的需要,所有文件都在那里 –

+0

我检查了它..我在loadmore.php中处理最后一个id ** ** _ _ GET ['lastid '] **并回显一些结果回调用js函数..在你的发布代码中,我无法看到它们..也试着提醒$(“。postitem:last”)。attr(“dating”)的值ajax调用? – mithunsatheesh

+0

该脚本在我的网站工作正常,并在我处理的最后日期和我得到的值,当我点击“加载更多”按钮但是新的结果不是从下一个开始,它应该但是相同的结果一遍又一遍地重复再次,但是当我手动将值添加到您提到的loadmore.php文件时,脚本工作正常,以便为什么我确定Javascript没有在while循环内的index.php中通过“约会”php值 –

0
  1. 您的实际使用GET方法取代get函数阿贾克斯
  2. 把你的查询字符串的数据结构

更容易在一个变量 VAR lastid = $检索值( “.postitem:last”)。attr(“dating”)|| '';

$.get("facebook_style_ajax_more.php", { lastid: lastid } 
    .success(... wahever...) 
); 

HTH

伊沃Stoykov