-2

アイテムのテーブルがあり、ユーザーがアイテムを選択したときに、そのIDをphp変数に設定したいので、[OK]ボタンを押すと、そのアイテムをユーザーに関連付けます。彼は一度に1つのアイテムしか選択できません。php / ajaxチュートリアルをいくつか試しましたが、うまくいかなかったようです。

コードは次のとおりです。

<table id="tableItens" style="border:1px solid #000000;" cellpadding="0" cellspacing="0">
<tbody>
    <?php foreach($produtoList as $produto) {
        if ($columnCounter == 0) { ?>
            <tr style="background-color:#FFFFFF;">
        <?php    
        } 
    ?>              
            <td id="<?php echo $produto['id'] ?>" width=160px; height="110" onclick="<?php echo 'selectRow(' . $produto['id'] . ');' ?>" style="text-align: center; border:1px solid #000000;border-bottom:0;"><?php echo'<img align="center" width="150" height="100" src="/resources/images/' . $produto['nome_imagem'] . '"></img>' ?></td>
            <?php $columnCounter++; ?>                  
        <?php if ($columnCounter == 3) { 
            $columnCounter = 0; ?>
            </tr>
        <?php } ?>      
    <?php } ?>
</tbody>

<script type="text/javascript">
function selectRow(id) {
  var table = document.getElementById("tableItens");
  document.getElementById(id).style.backgroundColor = 'red';

  $.ajax
  ({
      type: "POST",
      url: "vote.php",
      data: id,
      cache: false,
      success: function(data)
      {

        alert("ok");
      }
 });    
}
</script>

ajaxファイルなどを含める必要がありますか?多分jqueryリファレンス?

ページの先頭でvar_dump($ _ POST)を使用していますが、何も表示されません。の同じページに値を送信しています。

4

2 に答える 2

3

データフィールドが正しくないという答えは正しいですが、この単純なものは「POST」ではなく、「データ」フィールドをまったく必要としないGETである必要があります。URLフィールドを次のように変更するだけです: "vote.php?id =" + id

このような:

$.ajax 
({ 
    type: "GET", 
    url: "vote.php?id=" + id, 
    cache: false, 
    success: function(data) 
    {  
       alert("ok"); 
    } 
});  
于 2012-07-15T01:32:13.530 に答える
1

ajaxリクエストのデータが正しく設定されていません。http://api.jquery.com/jQuery.ajax/を参照してください

data:サーバーに送信されるデータ...オブジェクトはキーと値のペアである必要があります

注:文字列にすることもできますが、適切にフォーマットする必要があります

試す

 data: {uid : id},

そしてもちろん、jQueryへの参照を含める必要があります。jQueryを使用しています

このようなものをテストするには、通常、ほとんどの最新のブラウザーに付属しているJSコンソールを使用することをお勧めします。POSTをGETに変更して、生成されるURLの種類を確認できます。

于 2012-07-15T00:47:27.483 に答える