PHP 和 HTML
PHP 和 HTML 可以互操作: PHP 能夠生成 HTML, 而 HTML 可以傳遞信息給 PHP. 1. 我用一個 form/URL傳值時,我要怎樣 編碼/解碼? 2. 我在用 <input type="image"> 標記, 但 " /> 久久国产一区二区三区,免费观看亚洲视频,伊人色啪啪天天综合婷婷

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP 和 HTML


php 和 HTML
php 和 HTML 可以互操作: php 能夠生成 HTML, 而 HTML 可以傳遞信息給 php. 1. 我用一個 form/URL傳值時,我要怎樣 編碼/解碼? 2. 我在用 <input type="image"> 標記, 但 $foo.x and $foo.y 變量卻不可用. 它們在哪里? 3. 我怎樣創建 HTML <form>數組? 4. 我怎樣從一個多選框得到所有的結果值?
1. 我用一個 form/URL傳值時,我要怎樣 編碼/解碼?
在幾個階段里,編碼是非常重要的. 假設你有一個 字符串變量 $data, 它包含一些你要以 未編碼 方式傳遞的字符, 要經過下面階段的編碼:

HTML 解釋. 為了表示任何一個字符串, 你必須 把它包含在雙引號里, 而且是HTML特殊字符的要使用 htmlspecialchars寫法.
URL: URL 由幾部分組成. 你想你的數據被看成URL的一部分, 你 必須 用 urlencode()編碼它.


例 52-1. 隱藏的 HTML 表單元素 <?php    echo "<input type=hidden value=/"" . htmlspecialchars($data) . "/">/n";?>
注意: 這里不能用urlencode() $data, 因為 urlencode() 數據是瀏覽器的責任. 絕大多數瀏覽器可以正確處理這樣的數據. 無論用何種方法( GET POST). 你可以只考慮 GET 請求, 因為 POST 請求通常被隱藏了.
例 52-2. 用戶編輯數據 <?php    echo "<textarea name=mydata>/n";    echo htmlspecialchars($data)."/n";    echo "</textarea>";?>
注意: 在瀏覽器窗口顯示的數據會被解碼成可讀的,因為瀏覽器會對 HTML 標記進行解釋.
一旦提交, 無論GET 還是 POST, 瀏覽器在傳輸數據時會進行URL編碼,php則會對它進行解碼. 一切都是自動進行的,你不需要做什么.
例 52-3. 在URL串里 <?php    echo "<a href=/"" . htmlspecialchars("/nextpage.php?stage=23&data=" .        urlencode($data)) . "/">/n";?>
注意: 實際上你在自己寫一個 GET 請求, 所以用urlencode() 對它進行編碼就是不可缺少的.
注意: 你需要htmlspecialchars() 整個URL串, 因為URL串是 HTML-屬性的一部分. 這種情況下, 瀏覽器首先 反-htmlspecialchars() 這個值, 然后送出 URL . php 會識別這個URL串, 因為你用 urlencoded() 對它進行了編碼.
你會發現 & 在 URL 串中 被替換成 &. 雖然你沒有編碼大部分的瀏覽器也會幫你做,但并不是所有的都能. 所以即使你在寫一個靜態的URL,你也需要 用 htmlspecialchars() 來對 URL 進行編碼.

2. 我在用 <input type="image"> 標記, 但 $foo.x and $foo.y 變量卻不可用. 它們在哪里?
在提交一個表單里, 可能使用一個 image 控件而不是使用 標準的提交按鈕: <input type="image" src="image.gif" name="foo">When 當用戶點上 image 控件的某個地方時, 表單被提交到服務器,并有兩個附加的變量: foo.x and foo.y.
因為 $foo.x 和 $foo.y 在 php 里是無效的變量名, 所以它們自動被轉換成$foo_x and $foo_y. 也就是說, 圓點被替換成了下劃線.
3. 我怎樣創建 HTML <form>數組?
為了使你的表單結果作為數組送往php腳本,你可以給 <input>, <select> or <textarea> 元素象下面這樣取名: <input name="MyArray[]"><input name="MyArray[]"><input name="MyArray[]"><input name="MyArray[]">注意元素名后面的中括號不能省, 就是它使結果成為一個數組. 你可以通過元素名把它們排成不同的數組 : <input name="MyArray[]"><input name="MyArray[]"><input name="MyOtherArray[]"><input name="MyOtherArray[]">上面的代碼產生了兩個數組, MyArray 和 MyOtherArray, 送往php. 當然也可以為你的數組指明鍵值: <input name="AnotherArray[]"><input name="AnotherArray[]"><input name="AnotherArray[email]"><input name="AnotherArray[phone]">AnotherArray 數組會容納下標 0, 1, email and phone.

說明: 在元素名里標明下標值是可選的.如果你沒有標明,數組會按元素在表單里出現的順序來依次填充. 如我們的頭一個例子里數組的下標分別是: 0, 1, 2 and 3.

參見 Array 函數 and php外部變量.
4. 我怎樣從一個多選框得到所有的結果值?
HTML里的多選框是用來讓用戶從列表里選多個值的.這些值然后被送往表單的處理腳本. 問題在于它們都有同樣的變量名. 例如: <select name="var" multiple>每一個被選擇的項會這樣傳值給處理腳本: var=option1var=option2var=option3每個值覆蓋了前一項的值. $var 解決辦法是使用 php的 "表單元素數組"特性.下面就是: <select name="var[]" multiple>php會把 $var當成一個數組.每個被選擇項都會分配給一個數組單元. 第一項是$var[0], 下一項是 $var[1], 依此類推. count() 函數可以用來判斷數組有多少選擇項 ,如果有必要的話,還可以用 sort() 函數來對數組進行排序.
如果你在使用 JavaScript , 直接使用元素名引用可能會出錯. 你應該使用它的數字索引,或者把變量名放在單引號之內.例如: variable = documents.forms[0].elements['var[]'];

php技術PHP 和 HTML,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 扒开双腿疯进出爽爽爽动态图 | 两个人看的www免费高清直播 | 美女岔开腿露出粉嫩花苞 | 麻豆狠色伊人亚洲综合网站 | a级男女性高爱潮高清试看 A级毛片无码久久精品免费 | 日本中文字幕巨大的乳专区 | 女侠含泪巨臀迎合79 | 国产不卡在线观看视频 | 午夜射精日本三级 | 后入式狂顶免费视频 | 欧美亚洲精品午夜福利AV | 国内精品视频久久久久免费 | 伊人综合在线22 | 国产专区青青在线视频 | 亚洲2017天堂色无码 | 97国产蝌蚪视频在线观看 | 国产精品永久免费视频观看 | 中文字幕亚洲无线码一区 | 美女禁处受辱漫画 | 在线日韩欧美一区二区三区 | 在线观看免费视频播放视频 | 嫩草在线播放 | 一本之道加勒比在线观看 | 浪潮AV色综合久久天堂 | 丝瓜视频樱桃视频在线观看免费 | 色综合99久久久国产AV | 高干紧射H后入 | 国产精品v片在线观看不卡 国产精品v欧美精品v日韩 | 热の中文 AV天堂 | 精品一区二区三区AV天堂 | gv肉片视频免费观看 | 真实国产熟睡乱子伦对白无套 | jizz女学| 亚洲 成人网| 免费视频国产 | 久久久久久久久性潮 | 国产精品97久久AV色婷婷 | 成 人 免费 黄 色 网站无毒下载 | 国产高清美女一级毛片久久 | 女人一级毛片免费观看 | 88蜜桃人妻无码精品系列 |