問題があります。PHP HTML5からデータ属性を取得
私のウェブページにnews-evtとnews-ntcの両方のコンテンツを表示したいとします。 JSは "news-evt、news-ntc"をPOSTできますが、PHPはこの結果を処理できません。どうすればいいですか?私はPHPとアヤックスの新機能です...ありがとう!
マイ表:
**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 = explode(',',$_POST['last_id'])
に$last_id = $_POST['last_id']
を変更してforeach ($last_id as $item) {$raw_results = mysql_query............}
新しい問題を追加します。しかし、注文の問題... foreachループ出力最初の 'EVT' 結果があるが...
この場合、SQLクエリでLIKEを使用することは意味がありません。 _two_値があり、列に_one_値のみが含まれています。 IN()を使用するか、2つの異なる条件をチェックしてチェックします。そして、あなたはSQLインジェクションを読む必要があります。 – CBroe
エラーログを確認すると、スローされたエラーが表示されます。また、どのバージョンのPHPを使用していますか(コマンドラインアクセス( '' php -v')を持っている場合や単に '<?php phpinfo()を読み込むファイルを作成した場合、 'を呼び出し、ブラウザからそのページにアクセスしてください) –
PHP 5.4 by Goddady –