0

AZ からの JavaScript コードに複数行のボタンがあります。

<?php
    $a = range("A","Z");
?>

<table id="answerSection">
    <tr>

<?php
    $i = 1;
    foreach($a as $key => $val){
        if($i%7 == 1) echo"<tr><td>";
        echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";      
        if($i%7 == 0) echo"</td></tr>";
        $i++;
    }
?>
    </tr>

以下は、個々のボタンをオンまたはオフにする JavaScript 関数です。

function btnclick(btn)
{


$(btn).toggleClass("answerBtnsOff");
$(btn).toggleClass("answerBtnsOn");

    return false;
}

$_POST を実行して、オンになっているすべてのボタンを投稿したいと考えています。このための post メソッドの書き方を知っている人はいますか?

4

2 に答える 2

0

ボタンと同じ名前でオンになっているボタンと一緒に隠しフィールドを追加することをお勧めします。そうすれば、値とともに POST が返されます。このコードはテストされていませんが、次のように動作するはずです。

<?php
$a = range("A","Z");
?>

<table id="answerSection">
<tr>

<?php
$i = 1;
foreach($a as $key => $val){
    if($i%7 == 1) echo"<tr><td>";
    echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";
    echo"<input type=\"hidden\" value=\"1\" id=\"hiddenAnswer".$val."\" name=\"hidden".$val."\" class=\"onButtons\">";
    if($i%7 == 0) echo"</td></tr>";
    $i++;
}
?>
</tr>

次の JavaScript を使用 (jQuery を使用していると仮定):

function btnclick(btn)
{
    $(btn).toggleClass("answerBtnsOff");
    $(btn).toggleClass("answerBtnsOn");

    var hiddenId = '#hiddenAnswer'+btn.value;
    if ( $(btn).hasClass("answerBtnsOff") )
    {
        $(hiddenId).val('0');
        $(hiddenId).toggleClass('offButtons');
        $(hiddenId).toggleClass('onButtons');       
    }
    else
    {
        $(hiddenId).val('1');
        $(hiddenId).toggleClass('onButtons');
        $(hiddenId).toggleClass('offButtons');
    }   

    return false;
}

したがって、ボタンに $val の 'Hello'、'World'、'Foo'、'Bar' がある場合、1 (ボタンがオン) または 0 (ボタンがオフ) の次の投稿を受け取ります。

$_POST['hiddenHello']
$_POST['hiddenWorld']
$_POST['hiddenFoo']
$_POST['hiddenBar']

すべてのボタンが最初から「オン」になっていることに注意してください。

于 2012-10-02T18:25:22.807 に答える
0

これは、フォームを送信する方法によって異なります。通常のフォームとして送信するだけで、オフ ボタンを送信したくない場合は、無効な html 属性を使用して無効としてマークすることができます。そうすれば投稿されない

ajax を使用している場合は、値を取得して $.post または $.ajax で投稿する必要があります。

例えば。

$(btn).attr('disabled',true);
于 2012-10-02T18:23:45.760 に答える