2017-06-14 80 views
1

我遇到了一些问题!PHP从HTML5获取数据属性

我想在我的网页上显示news-evt和news-ntc内容。 JS可以POST“news-evt,news-ntc”,但PHP无法处理这个结果,我该怎么办?我是新的PHP和Ajax ...谢谢!

我的表:

**id** **category** 
    0  news-evt 
    1  news-ntc 

我的HTML:

<ul id="blog-filters"> 
    <li data-vid="news-evt, news-ntc"><a>All</a></li> 
    <li data-vid="news-evt"><a>Event</a></li> 
    <li data-vid="news-ntc"><a>Notice</a></li> 
</ul> 

我的JS:

$(document).ready(function() { 
    $(document).on('click', '#blog-filters li', function(){ 
     var last_id = $(this).data("vid"); 
     $.ajax(
     { 
      url:"load_data.php", 
      method:"POST", 
      data:{last_id:last_id}, 
      dataType:"text", 
      success:function(data) { 
       if(data !== '') { 
        $('.post-item').remove(); 
        $('.btn-load-more').remove(); 
        $('.blog-content-rows').append(data); 
       } else { 
        $('.btn-load-more a').html("No More..."); 
      }}, 
     }); 
    }); 
}); 

我的PHP:

if (isset($_POST['last_id'])){ 

    require_once('datalogin.php'); 
    $last_id = ($_POST['last_id']); 
    $showLimit = 3; 
    $output = ''; 
    $id = ''; 
    sleep(1); 

    $raw_results = mysql_query("SELECT * FROM article WHERE (category LIKE '%".$last_id."%') ORDER BY date DESC LIMIT ".$showLimit) or die(mysql_error()); 

    if(mysql_num_rows($raw_results) > 0) { 
     while($results = mysql_fetch_array($raw_results)) { 
      $id = $results['id']; 
      $output .= 'Something Code...'; 
     } 
    } 
} 

解决:只需改变$last_id = $_POST['last_id']$last_id = explode(',',$_POST['last_id'])然后添加foreach ($last_id as $item) {$raw_results = mysql_query............}

新的问题:但是有一个问题令... foreach循环输出 'EVT' 结果第一...

+1

在这种情况下,在你的SQL查询中使用LIKE是没有意义的。你有_two_值,而列只包含_one_值。你要么使用IN(),要么做两个单独的条件来检查。你需要阅读SQL注入。 – CBroe

+0

您可以通过检查错误日志来查看抛出的错误。此外,您正在使用哪种版本的PHP(您可以通过您的托管提供商,如果您有命令行访问('php -v')或者创建一个简单读取<?php php phpinfo() '并通过浏览器访问该页面) –

+0

PHP 5.4 by Goddady –

回答

0

您始终可以使用PHP的echo

<div class="blog-content-rows"> 
<?php 
    if (isset($_POST['last_id'])){ 
     require_once('datalogin.php'); 
     $last_id = ($_POST['last_id']); 
     $showLimit = 3; 
     $output = ''; 
     $id = ''; 
     sleep(1); 

     $raw_results = mysql_query("SELECT * FROM article WHERE (category LIKE '%".$last_id."%') ORDER BY date DESC LIMIT ".$showLimit) or die(mysql_error()); 

     if(mysql_num_rows($raw_results) > 0) { 
      while($results = mysql_fetch_array($raw_results)) { 
       $id = $results['id']; 
       $output .= 'Something Code...'; 

       //new code here: 
       echo "<div>ID: ". $id ."<br/> Output: ". $output ."</div>"; 
      } 
     } 
    } 
?> 
</div> 

结果会是这样:

<div class="blog-content-rows"> 
    <div>ID: 1<br/> Output: Some_text</div> 
    <div>ID: 2<br/> Output: Some_other_text</div> 
    <div>ID: 3<br/> Output: Another_text</div> 
</div> 

随意问其他的事。

+0

是的,它可以显示页面中的所有内容,但我在页面中添加了3个类别按钮1.全部2.事件3.通知........当我启动页面时,它显示所有.. ....当我点击事件,它显示事件.....但是当我点击所有按钮,它不工作..... –

+0

你看过@CBroe评论在你的文章上面? –

+0

是的,我不知道如何编写代码,但我会尝试。 –