森林之原
五月 23, 2012, 01:00:43 am *
歡迎光臨, 訪客. 請先 登入註冊一個帳號.

請輸入帳號, 密碼以及預計登入時間
新聞: 森林之原歡迎您的蒞臨!
森林之原提供自由軟體的支援,包括繁體中文的翻譯。
 
   首頁   說明 搜尋 日曆 登入 註冊  
頁: [1]   向下
  寄送主題  |  列印  
作者 主題: 請問如何把輸入改成「下拉式選單」.....  (閱讀 7769 次)
0 會員 以及 2 訪客 正在閱讀本篇主題.
xnoopy
初學者
*
離線 離線

文章: 6


« 於: 一月 12, 2006, 05:04:16 pm »

我有在「設定」裡的「圖片簡介的自訂欄位」,加上攔位名稱
在執行相簿編輯( editpics.php ) 和單張圖片編輯 ( editOnePic.php )
時也正常出現我設的欄位

想請教的是在輸入時,如何把原本是空白改成用下拉式選單呢?

說的很不清楚,以下這張是我用photoshop 改的,就是想改成這樣子的功能



 懇求請高手教教我
謝謝
« 最後編輯時間: 一月 12, 2006, 05:43:34 pm 由 xnoopy » 向版主檢舉   已記錄
Andrew::
魔,羯
*
離線 離線

文章: 217



個人網站
« 回覆文章 #1 於: 一月 12, 2006, 05:49:36 pm »

那你選單裡面的值 (台北,台中) 要在哪輸入?
如果硬寫在程式裡面應該不難...
向版主檢舉   已記錄

xnoopy
初學者
*
離線 離線

文章: 6


« 回覆文章 #2 於: 一月 12, 2006, 08:18:22 pm »

那你選單裡面的值 (台北,台中) 要在哪輸入?
如果硬寫在程式裡面應該不難...

下拉選單裡的選項,不一定要有設定介面
只要「硬寫在程式裡面」,記事本能的編輯就好 ^_^
請教教我吧,感謝 ~~
向版主檢舉   已記錄
Andrew::
魔,羯
*
離線 離線

文章: 217



個人網站
« 回覆文章 #3 於: 一月 12, 2006, 08:43:19 pm »

哈比我想像中難....
向版主檢舉   已記錄

禁海蒼狼
初學者
*
離線 離線

文章: 41


« 回覆文章 #4 於: 一月 14, 2006, 11:16:28 am »

程式碼:
//下拉選單用
$placename = '拍攝地點';//作為比對標記
$Photographstheplace = array('基隆','宜蘭','台北','新竹','桃園','苗栗','台中','彰化','南投','嘉義','雲林','台南','高雄','澎湖','屏東','台東','花蓮','金門','連江','香港','大陸','澳洲','美國','加拿大','其它');

修改:editOnePic.php
找到:
程式碼:
if ($CONFIG['user_field1_name'] != ''){

裡面的:

程式碼:
<input type="text" style="width: 100%" name="user1" maxlength="255" value="{$CURRENT_PIC['user1']}" class="textinput" />

用以下的程式碼取代:
程式碼:
<!-- //下拉選單開始 -->
                        <SELECT NAME="user1" class="textinput" >
<OPTION VALUE="">請選擇拍攝地點</OPTION>
EOT;
                        $theplace = $CURRENT_PIC['user1'];
if($R != "") $theplace = urldecode($R);
$theplaceString = "";
for($i = 0; $i < count($Photographstheplace); $i++)
{
$tmpplace = stripslashes($Photographstheplace[$i]);
$theplaceString .= ($theplaceString == "" ? "" : ",").$tmpplace;
echo("<OPTION VALUE=\"".htmlspecialchars($tmpplace)."\"");
if(strcasecmp($tmpplace, $theplace) == 0)
{
echo(" SELECTED");
$DefaultRoomFound = 1;
}
echo(">".$tmpplace."</OPTION>");
}

echo <<<EOT
                       


</SELECT>
<!--  //下拉選單結束 -->

修改:editpics.php
找到:

程式碼:
function form_input($text, $name, $max_length,$field_width=100)
{

裡面的:
程式碼:
global $CURRENT_PIC;


用以下的程式碼取代:
程式碼:
//下拉選單引入參數 $placename,$Photographstheplace
    global $CURRENT_PIC,$placename,$Photographstheplace;


再往下找到:

程式碼:
<input type="text" style="width: {$field_width}%" name="$name" maxlength="$max_length" value="$value" class="textinput" />

用以下的程式碼取代:

程式碼:
<!-- //下拉選單開始 -->
EOT;

if ($text == $placename )
{

echo <<<EOT
                        <SELECT NAME="$name" class="textinput" >
<OPTION VALUE="">請選擇拍攝地點</OPTION>
EOT;
                        $theplace = $CURRENT_PIC['user1'];
if($R != "") $theplace = urldecode($R);
$theplaceString = "";
for($i = 0; $i < count($Photographstheplace); $i++)
{
$tmpplace = stripslashes($Photographstheplace[$i]);
$theplaceString .= ($theplaceString == "" ? "" : ",").$tmpplace;
echo("<OPTION VALUE=\"".htmlspecialchars($tmpplace)."\"");
if(strcasecmp($tmpplace, $theplace) == 0)
{
echo(" SELECTED");
$DefaultRoomFound = 1;
}
echo(">".$tmpplace."</OPTION>");
}

echo <<<EOT
                         

</SELECT>
EOT;

}else{
echo <<<EOT
 <input type="text" style="width: {$field_width}%" name="$name" maxlength="$max_length" value="$value" class="textinput" />

EOT;
}
echo <<<EOT
<!--  //下拉選單結束 -->

修改:upload.php
找到:
程式碼:
function text_box_input($text, $name, $max_length, $iterations, $default='') {


裡面的:

程式碼:
global $CURRENT_PIC;

用以下的程式碼取代:

程式碼:
//下拉選單引入參數 $placename,$Photographstheplace
    global $CONFIG,$placename,$Photographstheplace;

再往下找到:
程式碼:
<input type="text" style="width: 100%" name="$name" maxlength="$max_length" value="$default" class="textinput" />

用以下的程式碼取代:
程式碼:
<!-- //下拉選單開始 -->
EOT;

if ($text == $placename )
{

echo <<<EOT
                        <SELECT NAME="$name" class="textinput" >
<OPTION VALUE="">請選擇拍攝地點</OPTION>
EOT;
                        $theplace = $CURRENT_PIC['user1'];
if($R != "") $theplace = urldecode($R);
$theplaceString = "";
for($i = 0; $i < count($Photographstheplace); $i++)
{
$tmpplace = stripslashes($Photographstheplace[$i]);
$theplaceString .= ($theplaceString == "" ? "" : ",").$tmpplace;
echo("<OPTION VALUE=\"".htmlspecialchars($tmpplace)."\"");
if(strcasecmp($tmpplace, $theplace) == 0)
{
echo(" SELECTED");
$DefaultRoomFound = 1;
}
echo(">".$tmpplace."</OPTION>");
}

echo <<<EOT
                         

</SELECT>
EOT;

}else{
echo <<<EOT
                <input type="text" style="width: 100%" name="$name" maxlength="$max_length" value="$default" class="textinput" />
EOT;
}


echo <<<EOT
<!--  //下拉選單結束 -->

整個修改大致完成,但是尚有多方面未考量到因此還有很大的修改空間。
相簿測試網址
測試帳號:Guests
測試密碼:Guests
« 最後編輯時間: 一月 14, 2006, 11:21:46 am 由 禁海蒼狼 » 向版主檢舉   已記錄
xnoopy
初學者
*
離線 離線

文章: 6


« 回覆文章 #5 於: 一月 15, 2006, 03:15:51 pm »

感謝禁海蒼狼 ~~

我做下拉選單的目地是要將公司的採訪攝影的照片建檔,會用到很多固定的關鍵字,以便日後搜尋
如:雜誌期數、狗品種、拍攝地點(寵物展、狗網聚) 之類的。固定的關鍵字又要一張張拍片手寫輸入的話太麻煩了,所以才想到用下拉選單




不好意思,可否再請教,我做了四個下拉選單的圖片簡介的自訂欄位,功能上是沒問題,執行editOnePic.php 也沒什大問題,但在執行 editpics.php和 upload.php 時
第二到第四個上方都會多一行空白



我的chinese_big5.php
editOnePic.php
editpics.php
upload.php
檔案:
http://x-yes.com/testphp/cpg.zip

(我增加了 $placename2,$Photographstheplace2, $placename3,$Photographstheplace3, $placename4,$Photographstheplace4)



我的網站:http://xnoopy.tw/photo
測試帳號:test
密碼:test2
« 最後編輯時間: 一月 16, 2006, 01:48:17 am 由 xnoopy » 向版主檢舉   已記錄
禁海蒼狼
初學者
*
離線 離線

文章: 41


« 回覆文章 #6 於: 一月 16, 2006, 08:15:17 am »

確定都改成下拉式選單的話

修改:chinese_big5.php

將:
程式碼:
//下拉選單用
$placename = '拍攝地點';  //作為比對標記
$Photographstheplace = array('基隆','宜蘭','台北','其它');
$placename2 = '拍攝地點2';  //作為比對標記
$Photographstheplace2 = array('哈哈第二個','基隆','宜蘭','台北','其它');
$placename3 = '拍攝地點3';  //作為比對標記
$Photographstheplace3 = array('哈哈第三個','基隆','宜蘭','台北','其它');
$placename4 = '拍攝地點4';  //作為比對標記
$Photographstheplace4 = array('哈哈第四個','基隆','宜蘭','台北','其它');

替換成:
程式碼:
//下拉選單用
$Photographs_the_place =array(
'placename' => '拍攝地點', //作為比對標記,必須與圖片簡介的自訂欄位1的名稱相同
'placename2' => '拍攝地點2', //作為比對標記,必須與圖片簡介的自訂欄位2的名稱相同
'placename3' => '拍攝地點3', //作為比對標記,必須與圖片簡介的自訂欄位3的名稱相同
'placename4' => '拍攝地點4', //作為比對標記,必須與圖片簡介的自訂欄位4的名稱相同

'placeset' => '請選擇拍攝地點',
'placeset2' => '請選擇拍攝地點2',
'placeset3' => '請選擇拍攝地點3',
'placeset4' => '請選擇拍攝地點4',
);

$Photographstheplace = array('基隆','宜蘭','台北','其它');
$Photographstheplace2 = array('哈哈第二個','基隆','宜蘭','台北','其它');
$Photographstheplace3 = array('哈哈第三個','基隆','宜蘭','台北','其它');
$Photographstheplace4 = array('哈哈第四個','基隆','宜蘭','台北','其它');



修改:editpics.php
修改:upload.php


程式碼:
//下拉選單引入參數
      global $CURRENT_PIC,$placename,$Photographstheplace,$placename2,$Photographstheplace2,$placename3,$Photographstheplace3,$placename4,$Photographstheplace4;

替換成
程式碼:
//下拉選單引入參數
    global $CURRENT_PIC,$Photographs_the_place,$Photographstheplace,$Photographstheplace2,$Photographstheplace3,$Photographstheplace4;


以下的程式碼已經包函了圖片簡介的自訂欄位共4個欄位,
所以你必須將(你自行建立的+我上次寫的)=以下的程式碼。來取代。

程式碼:

<!-- //下拉選單開始 -->
EOT;
switch ($text) {

        case $Photographs_the_place['placename'] :
echo <<<EOT
                        <SELECT NAME="$name" class="textinput" >
<OPTION VALUE="">{$Photographs_the_place['placeset']}</OPTION>
EOT;
                        $theplace = $CURRENT_PIC['user1'];
if($R != "") $theplace = urldecode($R);
$theplaceString = "";
for($i = 0; $i < count($Photographstheplace); $i++)
{
$tmpplace = stripslashes($Photographstheplace[$i]);
$theplaceString .= ($theplaceString == "" ? "" : ",").$tmpplace;
echo("<OPTION VALUE=\"".htmlspecialchars($tmpplace)."\"");
if(strcasecmp($tmpplace, $theplace) == 0)
{
echo(" SELECTED");

}
echo(">".$tmpplace."</OPTION>");
}

echo <<<EOT
                         

</SELECT>
EOT;
break;

        case $Photographs_the_place['placename2'] :
echo <<<EOT
                        <SELECT NAME="$name" class="textinput" >
<OPTION VALUE="">{$Photographs_the_place['placeset2']}</OPTION>
EOT;
                        $theplace = $CURRENT_PIC['user2'];
if($R != "") $theplace = urldecode($R);
$theplaceString = "";
for($i = 0; $i < count($Photographstheplace2); $i++)
{
$tmpplace = stripslashes($Photographstheplace2[$i]);
$theplaceString .= ($theplaceString == "" ? "" : ",").$tmpplace;
echo("<OPTION VALUE=\"".htmlspecialchars($tmpplace)."\"");
if(strcasecmp($tmpplace, $theplace) == 0)
{
echo(" SELECTED");

}
echo(">".$tmpplace."</OPTION>");
}

echo <<<EOT
                         

</SELECT>
EOT;
break;

        case $Photographs_the_place['placename3'] :
echo <<<EOT
                        <SELECT NAME="$name" class="textinput" >
<OPTION VALUE="">{$Photographs_the_place['placeset3']}</OPTION>
EOT;
                        $theplace = $CURRENT_PIC['user3'];
if($R != "") $theplace = urldecode($R);
$theplaceString = "";
for($i = 0; $i < count($Photographstheplace3); $i++)
{
$tmpplace = stripslashes($Photographstheplace3[$i]);
$theplaceString .= ($theplaceString == "" ? "" : ",").$tmpplace;
echo("<OPTION VALUE=\"".htmlspecialchars($tmpplace)."\"");
if(strcasecmp($tmpplace, $theplace) == 0)
{
echo(" SELECTED");

}
echo(">".$tmpplace."</OPTION>");
}

echo <<<EOT
                         

</SELECT>
EOT;
break;

        case $Photographs_the_place['placename4'] :
echo <<<EOT
                        <SELECT NAME="$name" class="textinput" >
<OPTION VALUE="">{$Photographs_the_place['placeset4']}</OPTION>
EOT;
                        $theplace = $CURRENT_PIC['user4'];
if($R != "") $theplace = urldecode($R);
$theplaceString = "";
for($i = 0; $i < count($Photographstheplace4); $i++)
{
$tmpplace = stripslashes($Photographstheplace4[$i]);
$theplaceString .= ($theplaceString == "" ? "" : ",").$tmpplace;
echo("<OPTION VALUE=\"".htmlspecialchars($tmpplace)."\"");
if(strcasecmp($tmpplace, $theplace) == 0)
{
echo(" SELECTED");

}
echo(">".$tmpplace."</OPTION>");
}

echo <<<EOT
                         

</SELECT>
EOT;
break;


default:
echo <<<EOT
<input type="text" style="width: {$field_width}%" name="$name" maxlength="$max_length" value="$value" class="textinput" />

EOT;

}

echo <<<EOT
<!--  //下拉選單結束 -->











« 最後編輯時間: 一月 17, 2006, 10:20:12 am 由 禁海蒼狼 » 向版主檢舉   已記錄
xnoopy
初學者
*
離線 離線

文章: 6


« 回覆文章 #7 於: 一月 16, 2006, 08:19:37 am »






太感謝了...................................... 禁海蒼狼 ~~~~~~




向版主檢舉   已記錄
xnoopy
初學者
*
離線 離線

文章: 6


« 回覆文章 #8 於: 一月 16, 2006, 11:56:20 am »

YAYAYA 終於完成了!

只是一開始用 <OPTION VALUE="">$Photographs_the_place['placeset']</OPTION>
(placeset~placeset4)
都會出現:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/xyes/www/www/photo/upload.php on line 206 (<OPTION VALUE="">$Photographs_the_place......... 的行數)


後來把全部都改成 : <OPTION VALUE="">請選擇拍攝地點</OPTION>
不用$Photographs_the_place陣列 就好了
« 最後編輯時間: 一月 16, 2006, 09:52:37 pm 由 xnoopy » 向版主檢舉   已記錄
禁海蒼狼
初學者
*
離線 離線

文章: 41


« 回覆文章 #9 於: 一月 17, 2006, 10:17:26 am »

<OPTION VALUE="">$Photographs_the_place['placeset3']</OPTION>

要這樣才對
<OPTION VALUE="">{$Photographs_the_place['placeset3']}</OPTION>

忘記用大括弧 {}
...........^^"

還是改一下比較好........
向版主檢舉   已記錄
xnoopy
初學者
*
離線 離線

文章: 6


« 回覆文章 #10 於: 一月 18, 2006, 06:04:56 am »

謝謝喔..^^
自學 php 不到一個月,原諒這麼簡單只差一個大大括弧 因該自己就要能排除的,還拿出來問..嘻嘻
« 最後編輯時間: 一月 18, 2006, 07:52:22 am 由 xnoopy » 向版主檢舉   已記錄
頁: [1]   向上
  寄送主題  |  列印  
 
前往:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Valid XHTML 1.0! Valid CSS!