2011-03-16 61 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