2017-06-14 19 views
1

問題があります。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' 結果があるが...

+1

この場合、SQLクエリでLIKEを使用することは意味がありません。 _two_値があり、列に_one_値のみが含まれています。 IN()を使用するか、2つの異なる条件をチェックしてチェックします。そして、あなたはSQLインジェクションを読む必要があります。 – CBroe

+0

エラーログを確認すると、スローされたエラーが表示されます。また、どのバージョンのPHPを使用していますか(コマンドラインアクセス( '' php -v')を持っている場合や単に '<?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つのカテゴリボタンを追加しました。すべて2.Event 3.Notice ........ページを開始すると、All .. ....イベントをクリックするとイベント.....が表示されますが、全ボタンをクリックすると動作しません..... –

+0

上記のポストで@CBroeのコメントを読んだことはありますか? –

+0

はい、コードを書く方法はわかりませんが、試してみます。 –

関連する問題