2012-06-18 16 views
0

我已經插入了此表單,其中包含多個收集某些值的複選框項目,我需要做的是將此值作爲以逗號分隔的字符串進行回顯,但我在implode函數中收到錯誤它說傳遞了無效的參數。使用implode函數讀取複選框值

你能看到代碼嗎?

if(isset($_POST['Submit'])) { 
    echo "<pre>"; print_r($_POST); 
    $checked = mysql_real_escape_string(implode(',', $_POST['checkbox'])); 
    echo $checked; 
} 
?> 

HTML表單

<form action="checkbox.php" method="post"> 
<input type="checkbox" name="checkbox[]" value="hostess_name"> 
<input type="checkbox" name="checkbox[]" value="hostess_familyname_en"> 
<input type="checkbox" name="checkbox[]" value="hostess_id"> 
<input type="checkbox" name="checkbox[]" value="hostess_firstname_en"> 
<br> 
<br> 
<input type="submit" name="Submit" value="Submit"> 
</form> 
+1

我們可以看看HTML表單嗎? – Adi

+0

當然,我更新了問題 –

+0

print_r顯示了什麼?你能把這個結果放進去嗎? – kingcoyote

回答

3

嘗試在我test.php

<?php 
if(isset($_POST['Submit'])) { 
    echo "<pre>"; 
    $checked = implode(',', $_POST['checkbox']); 
    echo $checked; 
} 

?> 
<form action="test.php" method="post"> 
<input type="checkbox" name="checkbox[]" value="hostess_name"> 
<input type="checkbox" name="checkbox[]" value="hostess_familyname_en"> 
<input type="checkbox" name="checkbox[]" value="hostess_id"> 
<input type="checkbox" name="checkbox[]" value="hostess_firstname_en"> 
<br> 
<br> 
<input type="submit" name="Submit" value="Submit"> 
</form> 
+0

它說:array_values()參數應該是一個數組... –

+0

對不起,'array_values()'不是必要的 – Adi

+0

唉,它仍然給我這個,它總是給我這個...:@ Invalid在implode函數中傳遞的參數 –

0

使用foreach循環來執行此

if(isset($_POST['Submit'])) { 
    echo "<pre>"; print_r($_POST); 
    $checked = implode(',', $_POST['checkbox']); 
    echo $checked; 
} 

這裏是我放的確切的東西。

例如:

$result = $_POST['checkbox']; 
foreach($result as $i) 
{ 
//your code goes here 
} 
+0

您好Bikas,感謝您的回覆,請您對我更具體一些?我發現很難理解,我是新手,所以我應該放下代碼部分。爲了檢索多個複選框值並將它們存儲在一個數組中,以便將它們內爆。 –

+0

$ result我指定了自己的一個數組。它包含所有檢查的值。 – Dev

+0

是的,但我應該在你說的部分裏面插入什麼//你的代碼在這裏 –

1

Adnan的代碼也適用於我。對於OP,您能否發佈print_r聲明的結果,以便我們可以驗證是否發佈了某些複選框?您的isset代碼會檢查表單是否已提交,但我想確保提交複選框的內容。

然而,基於我注意到的幾件事情,我對OP的問題也有一些其他意見。 A)您使用echo "<pre>",但您從不使用回顯結束標記echo "</pre>"。也許你只是放棄了這個代碼,但是如果你關閉標籤,那麼這可能會讓你的輸出變得不合時宜。 B)請不要使用mysql_*函數獲取新代碼。他們不再維護,社區已開始deprecation process(請參閱red box)。相反,您應該瞭解prepared statements並使用PDOMySQLi。如果你不能決定哪個,this article會幫助你。如果你在意學習,this is a good PDO tutorial

您會發現使用預準備語句不僅可以使您的代碼更安全,而且在代碼中實現也更加簡單。