English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

假如我要寫一個商品訂購單,如下:
12吋 筆記型電腦 NT 25,000 元
14吋 筆記型電腦 NT 38,900 元
16吋 筆記型電腦 NT 47,820 元
該如何用php寫出如果三個選項都沒被選取時,提醒顧客記得選取商品的語法呢?
如果語法太過複雜,大約簡單講解即可,或是有範例可以參考
在拜託大家了~


2006-12-20 17:18:31 · 2 個解答 · 發問者 心一點靈 6 in 電腦與網際網路 程式設計

2 個解答

敢問這位大大
你是不是也買了
松崗 = php+mysql 快速入門 這本書咧

首先對於這一題 我先提出我的做法



NB1

NB2

NB3




為什麼要用 js 來做判斷呢??
因為它可以當成 表單要傳給php處理時的一個 把關的
好處就是
使用者本來的輸入 通通都在
不會因為轉頁面而遺失辛苦打的資料
而警告訊息是用 談出警告視窗的方式出現
好處就是 你不用留板面位置給它
範例檔在這
www.audio329.com/jelly/yahoo/1506122009880.php
www.audio329.com/jelly/yahoo/1506122009880_2.php

當然你的問題是 怎麼用php寫
我的做法是
我會在訂單頁 留一個區塊 專門顯示錯誤訊息用的
然後在處理頁寫
if(empty($_POST['box1']) and empty($_POST['box2']) and empty($_POST['box3'])){
header("location: 1506122009880.php?worry=1");
}
例如


不過這樣有一個壞處就是.......因為變數一直都=1 所以錯誤視窗不會消掉 而已之前輸入的資料不一定在
當然也有更漂亮的做法 不過我不覺得比js先判斷簡單就是了

2006-12-20 23:52:16 補充:
忘了打說明
雖然你應該看的懂
但認真一點比較好 XD

if(!x && !y && !z){
alert("你沒選東西");
return false;
}

if( 這邊值是1的時候 ){這邊才會執行}
form.box1.checked 會傳回布林值
所以如果通通沒有選 就是 0 0 0
if(0 && 0 && 0) 這樣不會執行
所以加一個 !
就變成
if(1 && 1 && 1) 這樣會執行
如果裡面是 if(1 && 0 && 0) 有0就不執行

2006-12-20 23:55:27 補充:
if(empty($_POST['box1']) and empty($_POST['box2']) and empty($_POST['box3']))
差不多的道理
empty( )=>測試變數是否設定。沒設定 或 沒有值 傳回1
所以如果3個都沒有值 就是 1 1 1

2006-12-21 21:38:41 補充:
對喔 流浪說的對

並行是比較好的

然後盡量不要去用&_GET傳變數

2006-12-20 18:48:14 · answer #1 · answered by Jelly 7 · 0 0


原則上,
PHP與JavaScript驗證要並行,
因為駭客可以自行撰寫表單,

而且JavaScript可以被關閉的,
Mozilla FireFox便可輕易設定,
我提供的方式如下:










item_1
item_2
item_3







而PHP的驗證方式如下:
if(empty($_POST['item_1']) && empty($_POST['item_2']) && empty($_POST['item_3']) ){
//在此撰寫警告訊息
}

2006-12-21 05:31:16 · answer #2 · answered by 流浪玩家 6 · 0 0

fedest.com, questions and answers