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);

}

});

テーブルに行が 1 つしかない場合は、これで問題ありません。私が行う方法がわからないのは、生成されたすべての CHECKED ラジオ ボタンを配列または何かに保存するスクリプトを作成し、さらにデータベースからのレコードのすべての 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 に答える