2014-02-25 44 views
1

我有一個表格,用戶完成加入聊天室,從來沒有問題,因爲我們只有它可以加入一個聊天室,但現在我們「VE提供了多個選項,如從多個選定的表單選項在PHP中創建一個列表

  <option value="#Chat1">Chat 1</option> 
      <option value="#Chat2">Chat 2</option> 
      <option value="#Chat3">Chat 3</option> 
      <option value="#Chat4">Chat 4</option> 

後來我有

params.autojoin = "<? echo $_POST['channel']; ?>"; 

我怎樣才能改變這種做法,這是每一個選擇的通道用逗號即#Chat1,#Chat3分隔?

感謝

+0

您可能需要有選擇標籤類似名稱= '聊天室[]' name屬性然後在PHP中,你可以使用implode作爲implode(',',$ _POST ['chatRoom']) – Yogesh

回答

0
params.autojoin = "<? echo implode(',',$_POST['channel']); ?>"; 

編輯:

正如其他人的評論,我的解決方案假定您已經正確設置你的select這樣的:

<select multiple name="channel[]"> 

您可能已經有這樣的;告訴沒辦法,如果你不提供代碼;)

2

HTML

<select name="chatRoom[]" multiple="multiple"> 
<option value="#Chat1">Chat 1</option> 
<option value="#Chat2">Chat 2</option> 
<option value="#Chat3">Chat 3</option> 
<option value="#Chat4">Chat 4</option> 
</select> 

PHP $ selectChatRoom =破滅( 「」,$ _ POST [ '聊天室']);

+0

我不認爲這是要走的路。如果你將select變成了multiple =「multiple」,它已經是一個'數組'了(逗號separted字符串,我相信),所以你不需要括號 –

+1

它只有一個數組,如果名稱包含[]。否則,$ _POST ['chatRoom']將僅包含最後一個值。 – barryhunter

+1

@barryhunter你是對的。但我的觀點是,你需要添加多個=「倍數」的選擇。您始終可以通過服務器端代碼將發佈的值生成一個數組... –

0

它應該工作:

集名稱選擇的姓名= 「頻道[]」

params.autojoin = "<?php echo isset($_POST['channel']) && is_array($_POST['channel']) ? implode(',', $_POST['channel']) : ''; ?>"; 
相關問題