0

我的 javascript 代码中有多行按钮,这些按钮来自 AZ:

<?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

这取决于您要如何提交表单。如果您只想将其作为普通表单提交并且您不希望提交关闭按钮,您可以使用 disabled html 属性将它们标记为已禁用。这样他们就不会被发布

如果您使用 ajax,则需要获取值并使用 $.post 或 $.ajax 发布它们

例如。

$(btn).attr('disabled',true);
于 2012-10-02T18:23:45.760 回答
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 回答