我遇到了一些问题!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' 结果第一...
在这种情况下,在你的SQL查询中使用LIKE是没有意义的。你有_two_值,而列只包含_one_值。你要么使用IN(),要么做两个单独的条件来检查。你需要阅读SQL注入。 – CBroe
您可以通过检查错误日志来查看抛出的错误。此外,您正在使用哪种版本的PHP(您可以通过您的托管提供商,如果您有命令行访问('php -v')或者创建一个简单读取<?php php phpinfo() '并通过浏览器访问该页面) –
PHP 5.4 by Goddady –