iT邦幫忙

0

請教PHP表單輸入框改成條件式選單

各位大哥好.
這是一個填寫表單內的其中一項.
小弟想將原本(綠字部份)輸入文字框方式.想改成為有固定式條件選擇的下拉選單.
但由於其內含php語法傳遞.我只會html一直沒法修改成功..能否請大哥們幫忙如何改.
才能讓該項功能及資料能一併儲存.
謝謝!

http://ithelp.ithome.com.tw/upload/images/20160918/201029153IdTDCkcZD.png

因為無法貼程式碼.只好用貼圖.新手請見諒.

丹尼 iT邦新手 5 級 ‧ 2016-09-18 04:18:59 檢舉
<!--
<label for="article_author" >發佈地區</label>
<input type="text" id="article_author" name="article_author" placeholder="發佈地區" value="<?=$getLib->setFilter($getData['article_author']);?>">
-->

<form>
<select>
 <option>台北</option>
 <option>桃園</option>
 <option>新竹</option>
 <option>苗栗</option>
</select>
</form>
丹尼 iT邦新手 5 級 ‧ 2016-09-18 04:20:34 檢舉
只好將程式碼貼在留言上.請前輩幫忙.謝謝!
(我是想改成下面form那一段為固定選單)
丹尼 iT邦新手 5 級 ‧ 2016-09-18 10:13:52 檢舉
大哥.感謝您的指引.但是.我不是要選單程式或效果.
我只是想單純將下面這段裡面的php.

<label for="article_author" >發佈地區</label>
<input type="text" id="article_author" name="article_author" placeholder="發佈地區" value="<?=$getLib->setFilter($getData['article_author']);?>">

改寫入下面這段內.而能使用:
<form>
<select>
 <option>台北</option>
 <option>桃園</option>
 <option>新竹</option>
 <option>苗栗</option>
</select>
</form>

還請大家指教.
謝謝.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2016-09-18 18:15:52
最佳解答
<? $author=$getLib->setFilter($getData['article_author']); ?>
<form>
<select name="article_author">
 <option value="台北" <? if ($author=="台北") {  echo "selected"; } ?>>台北</option>
 <option value="桃園" <? if ($author=="桃園") {  echo "selected"; } ?>>桃園</option>
 <option value="新竹" <? if ($author=="新竹") {  echo "selected"; } ?>>新竹</option>
 <option value="苗栗" <? if ($author=="苗栗") {  echo "selected"; } ?>>苗栗</option>
</select>
</form>

溫馨提醒:
網友程式有對有錯,使用時請先了解風險及責任;
網友過往之正確程式碼不代表此程式碼亦正確。

看更多先前的回應...收起先前的回應...
丹尼 iT邦新手 5 級 ‧ 2016-09-18 23:58:21 檢舉

海綿大哥好.謝謝你的回覆.
看起來得確是我要的答案模樣.
但是我改過後.無法送出表單.

原以下這段是可以順利送出的:

<label for="article_author" >發佈地區</label>
<input type="text" id="article_author" name="article_author" placeholder="發佈地區" value="<?=$getLib->setFilter($getData['article_author']);?>">

請問海綿大.是哪裡有問題?
煩勞您解圍.十分感謝!

無法送出表單

可以的話,請貼以下兩項資料

  1. 送出表單前的 HTML
  2. 送出表單後的 HTML/畫面
丹尼 iT邦新手 5 級 ‧ 2016-09-19 12:49:44 檢舉

以下是填單畫面:
http://ithelp.ithome.com.tw/upload/images/20160919/201029156RVu9sWjzE.jpg

以下是填完整後送出畫面:
http://ithelp.ithome.com.tw/upload/images/20160919/20102915fVd5NWUGSV.jpg

以下是發佈者欄位不填的畫面:
http://ithelp.ithome.com.tw/upload/images/20160919/20102915rylHi8bRJ5.jpg

以下該表單內的原始碼:

<?php
$getArticle 	= new Article($config_upload_folder, $config_article_file_path, $getLib);
  
 // transfer data
 $getData = $_POST;
 $getFile = $_FILES;
 // set add function
 $getResult = $getArticle->addNewArticle($getData, $getFile);
 
 if($getResult['status'] == true){	
	$success_msg_array = $getResult['msg'];
	unset($getData);
 }else{
	$error_msg_array   = $getResult['msg'];
 }
?>
		<table width="600" border="4" cellpadding="8" cellspacing="8" bordercolor="#b8b8b8" align=center>
		<td align=center><br>
		<?php $getLib->showErrorMsg($error_msg_array);?>
		<?php $getLib->showSuccessMsg($success_msg_array);?>

		<!--CK Editor -->
		<script src="js/ckeditor/ckeditor.js"></script>
	    <script src="js/ckeditor/adapters/jquery.js"></script>
		<!--CK Editor -->
		<form role="form" action="manage.php?p=article_add" method="post" enctype="multipart/form-data">
			<label for="article_title">標題</label>
			  	<input type="text" id="article_title" name="article_title" placeholder="標題" value="<?=$getLib->setFilter($getData['article_title']);?>">
	  	
<label for="article_author" >發佈者</label>
<input type="text" id="article_author" name="article_author" placeholder="發佈者" value="<?=$getLib->setFilter($getData['article_author']);?>">

<!--
<form>		
<select>
 <option>Danny</option>
 <option>Kate</option>
 <option>User</option>
 <option>Test</option>
</select>
<input type="hidden" name="隱藏欄位名稱" value="隱藏欄位值">
</form> 	
-->  	

			  	<label>
				  <?php
					if($getData['article_top'] == "1"){
						$checked = "checked";
					}
				  ?>
				  <input type="checkbox" name="article_top" value="1" <?=$checked;?>> 置頂
				</label>	<br>			
			<label for="article_file">上傳附件</label>
				<input type="file" name="article_file[]" id="article_file">
				<p id="add_more_file">添加更多附件</p>
			<label for="article_file">發佈時間</label>
				<input type="text" name="article_date" value="<?=date("Y-m-d H:i:s");?>"> (年-月-日 時:分:秒) <br><br>
			<label for="article_author">文章內容</label>
			  	<textarea name="article_content" cols="50" rows="10"><?=$getLib->setFilter($getData['article_content']);?></textarea><br>
			  <button type="submit" name="send" value="send" style="width:150px;height:50px;">發佈</button><br><br>
		</form>
		</td></table>

海綿大大.我就是希望將"發佈者"的填單資料原本是手填.想改成下拉式選單能直接選擇誰.然後一併送出完成.
我該如何改寫?
麻煩您幫忙.十分感謝.

<select name="article_author">
 <option value="台北">台北</option>
 <option value="桃園">桃園</option>
 <option value="新竹">新竹</option>
 <option value="苗栗">苗栗</option>
</select>

先改這樣試試看可不可以送出

另外
Debug 要看的是「原始程式碼」和「產生出來的HTML碼」

wonton iT邦高手 6 級 ‧ 2016-09-19 13:26:28 檢舉

另外,select 不用再使用 form 包起來了

丹尼 iT邦新手 5 級 ‧ 2016-09-19 13:41:09 檢舉

感謝海綿大大.及Wonton大大.
照您說的改過後.已確定解決.成功的送出表單了.
非常感謝.永遠記得你的幫忙!
再次謝謝!

你感謝的太早了
因為成功的送出表單只完成了「一半」的功能
等你碰到另一半的問題時
再說吧

丹尼 iT邦新手 5 級 ‧ 2016-09-21 00:16:17 檢舉

再請問海綿大大.小弟解決了以上的add表單.
但現在進入edit表單.所有欄內都能載入資料.唯獨一樣這裡:

<select name="article_author">
 <option value="台北">台北</option>
 <option value="桃園">桃園</option>
 <option value="新竹">新竹</option>
 <option value="苗栗">苗栗</option>
</select>

該加入什麼語法才能在選單欄內預設為它的"值"?
謝謝!

<select name="article_author">
 <option value="台北">台北</option>
 <option value="桃園" selected>桃園</option>
 <option value="新竹">新竹</option>
 <option value="苗栗">苗栗</option>
</select>

在 HTML 裡加上 selected 即可預設為它的值

但是要如何知道在那一項加 selected 呢?
就要靠你自己寫 php 去判斷 article_author 的值了

^^^^^^
這就是我在樓上提到的「另一半」的問題

丹尼 iT邦新手 5 級 ‧ 2016-09-21 09:40:46 檢舉

謝謝大大.好.我再研究一下看看.
感謝您所有的指教.

0
炎之虛空
iT邦高手 3 級 ‧ 2016-09-18 07:47:21
丹尼 iT邦新手 5 級 ‧ 2016-09-18 10:15:11 檢舉

大哥.感謝您的指引.但是.我不是要選單程式或效果.
我只是想單純綠色這段裡面的php.

改寫入下面黑色Select這段內.而能使用:

還請大家指教.
謝謝.

fillano iT邦超人 1 級 ‧ 2016-09-18 13:11:43 檢舉

artical_author看起來不像是發佈地區的意思?

丹尼 iT邦新手 5 級 ‧ 2016-09-18 15:23:36 檢舉

只是名稱還沒有改.不好意思

我要發表回答

立即登入回答