陳先生 發問時間: 電腦與網際網路程式設計 · 1 0 年前

表單多個select ,使用php迴圈接收的問題

我目前要寫一個訂購的表單,因為項目很多,希望傳送到PHP頁面後用迴圈來接收,問題如下~~~

例如這頁的表單中有100個選項

<select name="select1">

<option value="1">1</option>

<option value="2">2</option>

</select>

<select name="select2">

<option value="1">1</option>

<option value="2">2</option>

</select>

一直到select100 ,然後將這些訂購的資料傳到PHP的接收頁然後用迴圈來接收

例如

for($i=1;$i<100;$i++) {

$txt=$txt+"$select".$i; <---這句是錯的,我一直找不到這樣子語法要怎寫

}

或者是select傳過來時就變成陣列select[1~100]

這個部份我也不曉得表單的部份要怎下

真的不行的話,我就只好打100句語法來接收了..><"""""

已更新項目:

感謝你們的回覆,但是我用了之後還是一直接不到資料

Dr.ice 的select[1] 和 select[]都試過了還是接不到資料

    我用$select[$i] 接不到也

冷泡茶 的

for($i=1;$i<100;$i++) {

$val="select".$i;

$select=$_POST[$val];  <-這句會去接POST 的$val 不會接變數值吧

echo $select."<br>";

}

所以還是不行...= =

2 個解答

評分
  • 1 0 年前
    最佳解答

    這樣就可以了<?for($i=1;$i<100;$i++) {$val="select".$i;$select=$_POST[$val];echo $select."<br>";}?>另外,如果您表單的select跟option都是序列的話,您也可以用迴圈去跑比較方便,不用一個一個打<?for ($i=1; $i<=100; $i++) {echo "<select name=\"select$i\"><option value=\"1\">1</option><option value=\"2\">2</option></select><br>";}?>或是您表單的option個數不一樣多,那還是可以改成這樣<?$ary=array("",3,4,5,3,7,6,5,8,6,4);//定義每一個select的option個數//因為都從1開始,所以陣列的[0],塞一個沒用的空值for ($i=1; $i<count($ary); $i++) { echo " <select name=\"select$i\"> "; for ($j=1; $j<=$ary[$i]; $j++) {  echo "<option value=\"$j\">$j</option>"; } echo " </select><br> ";}?>當然,表單跟取值也可以用陣列陣列的表單方式<?for ($i=1; $i<=100; $i++) {echo "<select name=\"select[]\"><option value=\"1\">1</option><option value=\"2\">2</option></select><br>";}?>至於option個數不同的表單方法與上面一樣只須把上面本來的<select name=\"select$i\">改成<select name=\"select[]\">或<select name=\"select[$i]\">即可陣列的取值方式<?$select=$_POST['select'];for($i=1;$i<100;$i++) {echo $select[$i]."<br>";}?>

    2006-11-19 22:10:46 補充:

    喔喔~~~ Dr.ice 在我回時早了一步囉...真是不好意思~~

    2006-11-20 23:50:17 補充:

    for($i=1;$i<100;$i++) { $val="select".$i; //這會產生成select1,select2,select3,.....,select100$select=$_POST[$val];//這會產生成 $_POST[select1],$_POST[select2],$_POST[select3],.....,$_POST[select100]echo $select."<br>"; //所以這就是印出select1~select100的變數}

    2006-11-20 23:50:32 補充:

    請看以下兩個範例http://swc.sdcs.com.tw/YahooKnowledge/q29/t02-1.ph...

    參考資料: 自己~~~
  • 1 0 年前

    <form name=search method="POST" action="test.php">

    <select name="select[1]">

    <option value="1">1</option>

    <option value="2">2</option>

    </select>

    <select name="select[2]">

    <option value="1">1</option>

    <option value="2">2</option>

    </select>

    <input type="submit" value="送出" name="B1"><input type="reset" value="重新輸入" name="B1">

    </form>

    ///////////////////////////////////////////////

    $text=$_POST["select"];

    print_r($text);

    ///////////////////////////////////////////////////

    出來結果

    Array ( [1] => 2 [2] => 1 )

    他會以陣列將你的選單接收。

    當然你的選單名稱也可以直接命為select[],這樣他會依照select的標籤順序,當作他接收的陣列順序。

還有問題?馬上發問,尋求解答。