PHP 和HTMLPHP 和HTML 可以互通: PHP 能夠產生HTML, 而HTML 可以傳遞訊息給PHP. 1. 我用一個form/URL傳值時,我要怎麼編碼/解碼? 2. 我在用 標記, 但$foo.x and $foo.y 變數卻不可用. 它們在哪裡? 3. 我怎麼創建HTML 數組? 4. 我怎麼從一個多選框得到所有的結果值? 1. 我用一個form/URL傳值時,我要怎樣編碼/解碼?在幾個階段裡,編碼是非常重要的. 假設你有一個字符串變量$ data, 它包含一些你要以未編碼方式傳遞的字符, 要經過下面階段的編碼: HTML 解釋. 為了表示任何一個字符串, 你必須把它包含在雙引號裡, 而且是HTML特殊字元的要使用htmlspecialchars寫法. URL: URL 由幾個部分組成. 你想你的資料被看成URL的一部分, 你 必須 用 urlencode()編碼它. 例 52-1. 隱藏的 HTML 表單元素 n";?> 注意: 這裡不能用urlencode() $data, 因為urlencode() 資料是瀏覽器的責任. 絕大多數瀏覽器可以正確處理這樣的資料. 無論用何種方法( GET POST). 你可以只考慮GET 請求, 因為POST 請求通常被隱藏了. 例 52-2. 使用者編輯數據 n"; echo htmlspecialchars($data)."n"; echo "";?> 注意: 在瀏覽器視窗顯示的資料會被解碼成可讀的,因為瀏覽器會對HTML 標記進行解釋. 一旦提交, 無論GET 還是POST, 瀏覽器在傳輸資料時會進行URL編碼,PHP則會對它進行解碼. 一切都是自動進行的,你不需要做什麼. 例 52-3. 在URL串裡 n";?> 注意: 實際上你在自己寫一個 GET 請求, 所以用urlencode() 對它進行編碼就是不可缺少的. 注意: 你需要htmlspecialchars() 整個URL字串, 因為URL字串是HTML-屬性的一部份. 這種情況下, 瀏覽器先反-htmlspecialchars() 這個值, 然後送出URL . PHP 會辨識這個URL串串, 因為你用urlencoded() 對它進行了編碼. 你會發現& 在URL 串中被替換成&. 雖然你沒有編碼大部分的瀏覽器也會幫你做,但並不是所有的都能. 所以即使你在寫一個靜態的URL,你也需要用htmlspecialchars() 來對URL 進行編碼. 2. 我在用 標記, 但$foo. x and $foo.y 變數卻不可用. 它們在哪裡?在提交一個表單裡, 可能使用一個image 控製而不是使用標準的提交按鈕: When 當用戶點上image 控制項的某個地方時, 表單被提交到伺服器,並有兩個附加的變數: foo.x和 foo.y. 因為$foo.x 和$foo.y 在PHP 裡是無效的變數名稱, 所以它們自動被轉換成$foo_x and $foo_y. 也就是說, 圓點被替換成了下劃線. 3. 我怎麼創建HTML 數組?為了使你的表單結果作為數組送往PHP腳本,你可以給, or 元素像下面這樣取名: 注意元素名稱後面的中括號不能省,就是它使結果成為一個陣列. 你可以透過元素名稱把它們排成不同的陣列: 上面的程式碼產生了兩個陣列, MyArray和MyOtherArray, 送到PHP. 當然也可以為你的陣列指明鍵值: AnotherArray 陣列會容納下標0, 1, email and phone. 說明: 在元素名裡標明下標值是可選的.如果你沒有標明,數組會按元素在表單裡出現的順序來依次填充. 如我們的頭一個例子裡數組的下標分別是: 0, 1, 2 and 3. 參見Array 函數and PHP外部變數. 4. 我怎麼從一個多選框得到所有的結果值? HTML裡的多選框是用來讓使用者從清單裡選多個值的.這些值然後被送到表單的處理腳本.問題在於它們都有同樣的變數名稱. 例如: 每一個被選取的項目會這樣傳值給處理腳本: var=option1var=option2var=option3每個值覆蓋了前一項的值. $var 解決方法是使用 PHP的 "表單元素數組"特性.下面就是: PHP會把$var當成一個數組.每個被選擇項都會分配給一個數組單元. 第一項是$var[0], 下一項是$var[1 ], 依此類推. count() 函數可以用來判斷數組有多少選擇項,如果有必要的話,還可以用sort() 函數來對數組進行排序. 如果你在使用JavaScript , 直接使用元素名引用可能會出錯. 你應該使用它的數字索引,或把變數名稱放在單引號之內.例如: variable = documents.forms[0].elements['var[]']; http://www.bkjia.com/PHPjc/314345.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314345.htmlTechArticlePHP 和HTML PHP 和HTML 可以互通: PHP 能夠產生HTML, 而HTML 可以傳遞訊息給PHP. 1 . 我用一個form/URL傳值時,我要怎麼編碼/解碼? 2. 我在用inp...