[請益]大量單選radio的name變數跟$_POST抓值問題

看板PHP作者 (ADEN)時間11年前 (2015/01/08 22:05), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/1
<?php date_default_timeZone_set('Asia/Taipei'); include ("configure.php"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>後天體質判定問卷</title> <meta name="keywords" content="關鍵字, 以逗號隔開"> <meta name="description" content="網站敘述"> </head> <body> <div align="left"> <form method="POST" action="qnsn.php"> <table align="left" width="" height="" border="0"> <tr> <td><div align="left"><span style='font-size:36.0pt; font-family:標楷體;color:black'><span class="style1">後天體質判定問卷 </span></span></div></td> </tr> <tr> <td><blockquote> </br> <p align="left" class="style2"> 0 分為三個月內沒發生過</p> <p align="left" class="style2"> 1分為三個月內發生過 1-3 次</p> <p align="left" class="style2"> 2分為三個月內發生過 4-6 次</p> <p align="left" class="style2"> 3 分為三個月內發生過 7-9 次</p> <p align="left" class="style2"> 4 分為三個月內發生過 10 次以上</p> <p align="left" class="style2"> 非常感謝您的作答! </p> <p align="left" class="style2"> 測驗者輸入姓名:<input type="text" name="name" size="10" maxlength="10" value=""></p> </blockquote></td> </tr> </table> <hr size="3" align="center" width="100%" color="#00FFFF"> </div> <?php $link = mysql_connect($hostname, $username, $password)OR die("Unable to connect to database"); if ($link) mysql_select_db($database); else die("Unable to select database"); mysql_query("SET NAMES utf8"); $query = "SELECT * FROM `questionnairetable1` ORDER BY `number` ASC,`physique` ASC,`QNSN` ASC;"; $result = mysql_query($query) or die("Connect DB Table Error!"); $number=0; while($row=mysql_fetch_array($result)) { $number++; (int)$number; echo "<p align=\"left\">"; echo "<table align=\"left\" border=\"0\">"; echo "<tr align=\"center\"><td>".nl2br($row["number"])."</td><td>".nl2br($row["physique"])."</td><td>".nl2br($row["QNSN"])."</td> <td colspan=\"1\"> <input type=\"radio\" name=\"q$number\" value=\"0\">0 <input type=\"radio\" name=\"q$number\" value=\"1\">1 <input type=\"radio\" name=\"q$number\" value=\"2\">2 <input type=\"radio\" name=\"q$number\" value=\"3\">3 <input type=\"radio\" name=\"q$number\" value=\"4\">4</td> </tr>"; echo "</br>"; echo "</p>"; switch($number){ case 7: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 14 : echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 21: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 26: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 34: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 41: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 48: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 54: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 61: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; case 67: echo "<hr size=\"3\" align=\"center\" width=\"100%\" color=\"#00FFFF\">"; break; } } echo "</table>"; // 釋放結果集($result)所佔用的記憶體。(若無釋放,程式可能會錯誤,尤其是用 "SELECT ..."的時候) mysql_free_result($result); // 關閉與MySQL資料庫的連線,若用mysql_pconnect()則不需要此行 mysql_close($link); ?> <hr size="3" align="center" width="100%" color="#00FFFF"> <input type="submit" name="submit" value="送出"> <input type="reset" name="reset" value="重新填寫"> <?php if((isset($_POST["submit"]))&&(isset($_POST["name"]))) { $q=array(); for($j=1;$j<=66;$j++){ if(isset($_POST["q$j"])){ $q[$j]=($_POST["q$j"]); echo "$q[$j]"; } } echo "</br>"; var_dump($_POST); echo "</br>"; var_dump($q); echo "</br>"; } ?> </form> </body> </html> 程式碼全部如上 請益關於抓到的值,我打算做某幾題到某幾題的總合 總題數有66題~ 但下半段PHP一直無法把抓到的值存到新的q[]陣列裡面 參考板上舊文var_dump($_POST);的值如下 array(8) { ["name"]=> string(7) "2312342" ["q_1"]=> string(1) "1" ["q_2"]=> string(1) "1" ["q_3"]=> string(1) "1" ["q_4"]=> string(1) "1" ["q_5"]=> string(1) "1" ["q_6"]=> string(1) "1" ["submit"]=> string(6) "送出" 但是var_dump($q);如下 array(0) {} 空空的><卡關好幾天了,麻煩板上高手救助。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.97.93.132 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1420725900.A.F5B.html

01/09 01:08, , 1F
真心 不要這樣放...很難看懂...有Git 或很多空間
01/09 01:08, 1F

01/09 01:09, , 2F
POST["q_$j"] 少底線
01/09 01:09, 2F

01/09 09:44, , 3F
$q要變陣列,你語法就已經設定錯誤name,q[$number]
01/09 09:44, 3F

01/09 12:12, , 4F
..... 這樣寫會不會太複雜 推樓上 掌握以上原則便可
01/09 12:12, 4F

01/09 12:14, , 5F
原PO根本不需要特地寫很多東西 建議加強陣列觀念
01/09 12:14, 5F

01/09 14:54, , 6F
radio直接就可以name="q[1]"不用再轉換
01/09 14:54, 6F

01/09 14:56, , 7F
底線不知道那跑出來的確定有沒有正式線測試線搞混
01/09 14:56, 7F

01/10 14:21, , 8F
直接就丟進name="variable[]"陣列就好了
01/10 14:21, 8F
文章代碼(AID): #1KhewCzR (PHP)
文章代碼(AID): #1KhewCzR (PHP)