2011-03-16 30 views
0

在想,如果有人可以帮助我解决这个问题:值,而不会产生作用

如果我有三个复选框使用不同的值就像一个形式:

<input type="checkbox" name="checkbox" value="1stValue"> 
<input type="checkbox" name="checkbox" value="2ndValue"> 
<input type="checkbox" name="checkbox" value="3rdValue"> 

,我需要提交该表单,以便值最终在隐藏字段 中与每个之间的一个称为ans的​​值相同,以便同一表单上的文本字段 实际上具有其中包含的第一值,第二值,第三值' withpurpur行动形式。

这是最好的办法吗?

+0

您还有其他选择吗? – AbiusX 2011-03-16 05:13:42

+0

你能解释一下你的意思吗?“没有在窗体上生成动作”? – Phil 2011-03-16 05:25:40

+0

未提交表格......... – ritu 2011-03-16 06:43:36

回答

0

把复选框中的数组

<input type="checkbox" name="checkbox[]" value="1stValue"> 
<input type="checkbox" name="checkbox[]" value="2ndValue"> 
<input type="checkbox" name="checkbox[]" value="3rdValue"> 

那么接下来的页面上破灭的阵列

<input type="hidden" name="checkboxes" value="<?php echo implode(',', $_POST['checkbox']) ?>"> 
+3

'<?php echo htmlspecialchars(implode(',',$ _POST ['checkbox']))?>'请始终建议采取防御措施,XSS攻击是所以很常见,因为很多人得到这个基本的东西是错误的:*所有的值必须在输出到页面之前进行HTML-ecoded。* – Tomalak 2011-03-16 05:20:55

+0

同意,只是没有觉得需要使其他主题的答案复杂化 – Galen 2011-03-16 16:14:38

0

您可以创建多个隐藏的文本框,并把各一个,或者用这个:

<input type="checkbox" name="checkbox[]" value="1stValue"> 
<input type="checkbox" name="checkbox[]" value="2ndValue"> 
<input type="checkbox" name="checkbox[]" value="3rdValue"> 

有了这个服务器端:

<?php 
$data=implode(",",$_POST['checkbox']); 

echo "<input type='hidden' value='{$data}' name='hiddenField' />"; 
?> 
+0

它的作品只在生成行动....我希望这个值在隐藏的形式领域没有产生行动的形式...... – ritu 2011-03-16 05:18:46

+0

你是什么意思产生的行动? – AbiusX 2011-03-16 14:32:16

1

我想你需要一个函数,在提交表单之前将隐藏字段中的逗号分隔值。

检查这个代码:

<html> 
<head> 
<script type="text/javascript"> 
function setHiddenField() 
{ 
    len = objForm.elements.length; 
    var i=0; 
    var hiddenValue=''; 
    for(i=0 ; i<len ; i++) 
    { 
    if (objForm.elements[i].type=='checkbox' && objForm.elements[i].checked==true) 
     hiddenValue += objForm.elements[i].value+","; 
    } 
    if(hiddenValue!='') 
     hiddenValue = hiddenValue.substr(0,hiddenValue.length-1); 

    document.getElementById('hiddenFieldId').value = hiddenValue; 
} 
</script> 
</head> 
<body> 
<form name="objForm" > 
<input type="text" name="checkboxes" id="hiddenFieldId" /><br/> 
<input type="checkbox" name="checkbox" value="1stValue"><br/> 
<input type="checkbox" name="checkbox" value="2ndValue"><br/> 
<input type="checkbox" name="checkbox" value="3rdValue"><br/> 
<input type="button" value="Click Me" onclick="setHiddenField()" /> 
</body> 
</html> 

注: 我已经把输入型=“文本”,以表明该值是未来的权利,将其更改为隐藏在你的实际代码 此外,我认为你需要获取表单中每个复选框的值

+0

是的,我需要你说的相同的东西,但是如果我在点击选项 – ritu 2011-03-16 06:39:46

+0

上使用这个功能,它不起作用谢谢.........现在它的工作 – ritu 2011-03-16 07:38:39

+0

@ritu不要忘记接受nik's答案 - http://stackoverflow.com/faq#howtoask – Phil 2011-03-17 00:44:58