如何使这个JQuery / Ajax脚本与多个行记录一起使用?

时间:2012-07-26 18:07:29

标签: php jquery ajax arrays

我有一个包含动态填充数据库记录的表。

<table>
<tr>
   <td>name
   </td>
   <td>surname
   </td>
   ...
</tr>
<?php do { ?>
<tr>
    <td><?php echo $row_Recordset1['Name'];?>
    </td>
    <td><?php echo $row_Recordset1['Surname'];?>
    </td>
...
<td align="center">
    <form name="form" action="novi.php">
    <input name="check" type="radio" value="da">Да
    <input name="check" type="radio" value="ne">Не
    <input type="hidden" id="id" value="<?php echo $row_Recordset1['id_korisnici'];?>">
    <input class="button1"type="button" id="klik" value="Испрати"/>
    </form>
</td>
</tr>
<?php } while($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>

而且我使用J Query创建一个AJAX调用到另一个将运行查询的页面。

<script>
$('#klik').click(function() {
var check = $("input[name='check']:checked").val();
var id = $('#id').val();
if (check == "da")
{
    $.post('sluzbaIncludes/n.php', {check:check, id:id}, function(data) {

        $('#klik').prop('value', (data));
        document.location.reload();

    });
}
else if (check == "ne")
{
    $.post('sluzbaIncludes/n.php', {check:check, id:id}, function(data) {

    $('#klik').prop('value', (data));
    document.location.reload();

});
}
else
{
    $('#klik').prop('value', 'Грешка');
    setTimeout("$('#klik').prop('value', '.')",500);
    setTimeout("$('#klik').prop('value', '..')",1000);
    setTimeout("$('#klik').prop('value', '...')",1500);
    setTimeout("$('#klik').prop('value', 'Испрати')",2000);

}

});     

如果表中只有一行,则表示正常。 我不知道该怎么做,使脚本将所有生成的CHECKED单选按钮存储在一个数组或其他内容中,加上数据库中所有记录的ID,并将它们发送到另一个页面,根据它们的ID是a查询将更新数据库..

<?php
if ($_POST['id'] != NULL) {
if ($_POST['check'] == "da") {
       $id = mysql_real_escape_string($_POST['id']);
   $update = mysql_query("update korisnici set validacija = 1 where id_korisnici= '$id'");
        if ($update === true) {
        echo 'OK';

    }else if ($update === false){
        echo 'Error!!!';
    }
}
elseif ($_POST['check'] == "ne")
{
$id = mysql_real_escape_string($_POST['id']);
    $update = mysql_query("update korisnici set validacija = 2 where id_korisnici= '$id'"); 
    if ($update === true) {
            echo 'OK';

        }
    else if ($update === false){
            echo 'Error!!!';
        }
}
} else {
echo 'Error!!!';
}
?>

谢谢! 附:我是JQuery的菜鸟和PHP的初学者......

更新

我确实改变了一些事情。现在值显示为我想要的,当我单击没有选择的按钮时,我在正确的按钮中的JQuery代码的ELSE部分中收到错误消息。但无论我点击哪个按钮(如果表中填充了数据库中的3条记录,则有3个按钮)只有表中的第一行在数据库中更新。

<form name="form" action="novi.php">
           <input name="check<?php echo $row_Recordset1['id_korisnici'];?>" type="radio" value="da">Да
           <input name="check<?php echo $row_Recordset1['id_korisnici'];?>" type="radio" value="ne">Не
           <input type="hidden" id="id" value="<?php echo $row_Recordset1['id_korisnici'];?>">
           <input class="button1"type="button" id="klik<?php echo $row_Recordset1['id_korisnici'];?>" value="Испрати"/>
            </form>

JQuery:

$('#klik<?php echo $row_Recordset1['id_korisnici'];?>').click(function() {
var check = $("input[name='check<?php echo $row_Recordset1['id_korisnici'];?>']:checked").val();
var id = $('#id').val();


if (check == "da")
{
    $.post('sluzbaIncludes/n.php', {check:check, id:id}, function(data) {

        $('#klik<?php echo $row_Recordset1['id_korisnici'];?>').prop('value', (data));
        document.location.reload();

    });
}
else if (check == "ne")
{
    $.post('sluzbaIncludes/n.php', {check:check, id:id}, function(data) {

    $('#klik<?php echo $row_Recordset1['id_korisnici'];?>').prop('value', (data));
    document.location.reload();

});
}
else
{
    $('#klik<?php echo $row_Recordset1['id_korisnici'];?>').prop('value', 'Error');
    setTimeout("$('#klik<?php echo $row_Recordset1['id_korisnici'];?>').prop('value', '.')",500);
    setTimeout("$('#klik<?php echo $row_Recordset1['id_korisnici'];?>').prop('value', '..')",1000);
    setTimeout("$('#klik<?php echo $row_Recordset1['id_korisnici'];?>').prop('value', '...')",1500);
    setTimeout("$('#klik<?php echo $row_Recordset1['id_korisnici'];?>').prop('value', 'Send')",2000);

}

});

1 个答案:

答案 0 :(得分:0)

使每组单选按钮具有唯一的名称,但具有相同的类别。然后你可以使用jQuery迭代它们:

var radioVals = new Array();
var i = 0;
$(".radioButtonClass:checked").each(function() { 
    radioVals[i] = $(this).val();
});

然后在你的ajax调用中传递数组。