0

私は php で評価アプリケーションを実行しています。ここでは、jQuery ajax 関数呼び出し内に for ループを記述したいと考えています。正しい構文がわかりません。

私が使用したPHPコードは

for(i=1;i<=4;i++)
{
<div class="like">
<a href="#" class="like" id="1" name="up"><img src="images/likebig.png"></a>
<a href="#" class="like" id="1" name="down"><img src="images/dislike.png"></a>

 <form>
 <input type="hidden" id="<?php echo $i; ?>" value="<?php echo $_SESSION['r_id'][$i]?>">
 </form>
}
</div>

上記のコードは 4 つの結果を返します。ここでは、対応するクリックのクリックで各結果の値 ($_SESSION['r_id'][$i]) を取得したいと考えています。

私が使用したjQuery関数は

<script type="text/javascript">

    $(document).ready(function()
    {
    $(".like").click(function(e)
    {
    e.preventDefault();
    var id=$(this).attr("id");
    var name=$(this).attr("name");
    var fname = $("#fname").val();
    var lname = $("#lname").val();
    var email = $("#email").val();
    for(var i=1;i<=4;i++)
    {
    var rel[i] = $("#i").val();
    }
    var dataString = 'id='+ id + '&name='+ name + '&fname='+ fname + '&lname='+ lname + '&email='+ email;
     $.ajax
      ({
      type: "POST",
      url: "rate.php",
      data: dataString,
      cache: false,
      });
     });
    });
</script>
4

1 に答える 1

1

これを変える

var rel[i] = $("#i").val();

に:

var rel[i] = $("#" + i).val();

.serialize()または、次の方法を使用できます。

.serialize() メソッドは、標準の URL エンコード表記でテキスト文字列を作成します。一連のフォーム要素を表す jQuery オブジェクトで動作します。フォーム要素にはいくつかのタイプがあります。

$.ajax({
   type: "POST",
   url: "rate.php",
   data: $('form').serialize(),
   cache: false,
 });
于 2012-07-04T04:51:52.290 に答える