各位前輩,我是位剛自學PHP的菜菜菜鳥,再練習建置一份郵寄問卷名單,
在no1.php採implode處理,可得正確的複選值內容,但在預覽選項的no2.php中相同
的方式處理但複選值內容卻完全出不來,拜了各路搜尋大神仍找不到解答,懇請各位不吝協助這問題,在此先謝過^^
以下為表單內容與PHP檔案內容 請各位了解一下 感恩
<form action="no1.php" method="post" name="form1">
<p>請選擇興趣:<select name="hobbies[]" size="3" multiple>
<option value="閱讀">閱讀</option>
<option value="聽音樂">聽音樂</option>
<option value="逛街">逛街</option>
</select></p>
<p><input type="submit" name="formok" value="完成"> <input type="reset" name="formrestart" value="重新填寫"> <input type="button" name="formreview" value="問卷預覽" target="_blank" onClick="location.href='no2.php?hobbies='+document.form1['hobbies[]'].value"></p>
</form>
no2.php內容
<?php
header("Content-type:text/html;charset=UTF-8");//宣告網頁編碼
$date=date('Y/m/d'.' '.'G:i:s');//設定填寫時間
if($_GET["hobbies"]==""){
$_allhobbies=$_GET["hobbies"];
}else{
$_allhobbies="我選擇的興趣:".implode(",",$_GET["hobbies"]);
//巢狀判斷式 結束
}
$message="
年齡興趣調查問卷<br />
<br />
填寫時間:{$date}<br />
$_allhobbies<br />
-------------------------------------------------------------------------------------------------------------<br />
問卷填寫完成<br />
";
echo "<body bgcolor='#FFFFCC'>"."$message";
?>
你光是這麼做, 沒辦法建立正確的GET參數:
onClick="location.href='no2.php?hobbies='+document.form1['hobbies[]'].value"
建立好的 url 應該要長成這樣:
<pre class="c" name="code">no2.php?hobbies[]=閱讀&hobbies[]=聽音樂
所以得這樣才行:
<pre class="c" name="code">
<script type="text/javascript">
function preview() {
var hobbies = document.form1['hobbies[]'];
var param = "";
for (i = 0; i < hobbies.length; ++i) {
if (hobbies[i].selected) {
param = param ? param + "&" : "";
param += "hobbies[]=" + hobbies[i].value;
}
}
location.href = 'no2.php?' + param;
}
</script>
<form action="no1.php" method="get" name="form1">
<p>請選擇興趣:<select name="hobbies[]" size="3" multiple>
<option value="閱讀">閱讀</option>
<option value="聽音樂">聽音樂</option>
<option value="逛街">逛街</option>
</select></p>
<p>
<input type="submit" name="formok" value="完成">
<input type="reset" name="formrestart" value="重新填寫">
<input type="button" name="formreview" value="問卷預覽" onClick="preview()">
</p>
</form>
謝謝 weiclin大大說明~~另外想請問,若再form中多加了數各欄位,可在location.href = 'no2.php?' + param;加入欄位其他字串嗎
<pre class="c" name="code"><p>請輸入姓名:<input type="text" name="name" maxlength="8" size="8"><br>
<br>
請選擇年齡:<select name="old" size="1">
<option value="1 歲 - 10 歲">1 歲 - 10 歲</option>
<option value="11 歲 - 20 歲">11 歲 - 20 歲</option>
</select></p>
<p>請選擇興趣:<select name="hobbies[]" size="3" multiple>
<option value="閱讀">閱讀</option>
<option value="聽音樂">聽音樂</option>
<option value="逛街">逛街</option>
</select></p>
<p>請填入郵件地址:<input type="text" name="mail" maxlength="30" size="30"></p>
可以呀, 你可以把 form 的 method 改成 get, 接著按 submit
瀏覽器就會顯示組合好的 url, 你仿照那樣去做就行了