我的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方法?
答案 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;从一开始。