如何在下面的例子中执行$ _POST?

时间:2012-10-02 18:20:36

标签: javascript jquery

我的javascript代码中有多行按钮来自A-Z:

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

2 个答案:

答案 0 :(得分:0)

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

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

例如。

$(btn).attr('disabled',true);

答案 1 :(得分: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&#39; Hello&#39;,&#39; World&#39;&#39; Foo&#39;,&#39; Bar&#39;您将收到以下帖子,它们是1(按钮打开)或0(按钮关闭):

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

请注意,所有按钮都已打开&#34;&#34;从一开始。