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>

上面的代码给出了四个结果。这里我想获取每个结果的值($_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 回答