我正在用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>
更改此设置
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,
});