0

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

<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 是查询将更新数据库..

<?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!!!';
}
?>

谢谢!PS我是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);

}

});

4

1 回答 1

0

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

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

然后只需在您的 ajax 调用中传递数组。

于 2012-07-26T18:22:44.087 回答