作者andreli (小狗跟正妹是我的死穴)
看板PHP
標題Re: [請益] 按鈕判斷
時間Thu Mar 25 10:21:02 2010
※ 引述《tkdmaf (皮皮快跑)》之銘言:
: ※ 引述《ellyer (努力衝喔!!)》之銘言:
: : 問題是
: : 我判斷是否按下按鈕的程式碼 一直跑不出來
: : echo "<form action=\"add_mem.php\" method=\"post\">";
: : echo "<font color=\"red\">此姓名已存在! 繼續新增? </font>";
: : echo "<input type=\"button\" name=\"yes\" value=\"是\">";
: : if(isset($_POST["yes"])) echo "yes"; else echo "...";
: : 這段程式碼已經參考過網路上面的了
: : 還是不明白為什麼抓不到按鈕按下去的動作...
: 你可以這樣寫,這樣可以少寫很多的「\"」
: <?php
: 一段php程式碼之後
: ?>
: <form action="add_men.php" method="post">
: <font color="red">此姓名已存在!繼續新增?</font>
: <input type="hidden" name="check" value="yes"/>
: <input type="submit" value="是" />
: <?php
: 接下去的動作......
: ?>
: 不過這最終還不是個好辦法,畢竟php和html混在一起了。
: (不是你用echo來做就=不是html,只要echo他輸出的就是html,寫越多的echo,就
: 表示輸出越多的html,那根html和php混在一起寫這件事就沒什麼兩樣了。)
: 你的問題最後是出在你是用type="button",而不是type="submit"。
: 所以按鈕沒有被送出。
上面兩種方法在我維護的程式中都看得到,
第一種原PO用的方式是我最不喜歡見到的, 第二種方式雖然好點,
可是還是不太喜歡看到, 因為有人寫的程式竟然可以if else一堆,
看到眼花都很難看出他的邏輯, 所以我還是推薦使用跟PHP分離的寫法,
MVC的架構真的讓程式好維護很多。
回到原PO的問題, 如果我沒誤解你的問題, 你的問題應該是跟Ajax相關,
想要即時判斷有沒有按下按鈕, 請使用JavaScript, 想要不送出網頁就取回資料庫資料,
這就要用到Ajax的觀念了, 但是我承認, 其實我還是很看不懂原PO的問題。
如果不是要即時的作法, 那送出網頁, 判斷送出的按鈕值有沒有,
接著判斷資料庫裡面有沒有資料, 這樣應該就行了吧?
原po的程式我還看不到有問題的地方, 邏輯也跟我想的有點不一樣。
(剛剛忘了說: 其實我覺得如果要寫\"的寫法,
那倒不如最外面用'來改就不用這麼麻煩了。
echo 'form action="abc.php"';)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.120.68.100
※ 編輯: andreli 來自: 221.120.68.100 (03/25 10:29)
推 JeffMcBride:更直覺的方法 就是插入here document方式 03/25 14:23
推 tkdmaf:你會維護到是因為台灣一堆初學者書都這樣教。 03/25 14:57
→ tkdmaf:以前還有人嗆我:書上就是這樣教,難道書本教的會錯嗎? 03/25 14:57
→ tkdmaf:雖然很不想講說:雖然不算錯。但會非常難搞! 03/25 14:58
→ tkdmaf:然後我目前並沒有看到中文PHP的教學書籍有提到MVC的。 03/25 15:00
→ tkdmaf:遇到這種事能怪誰?怪一些出書只為賺錢的出版者吧。 03/25 15:00
推 ellyer:判斷按鈕按下的部分,JavaScript我知道可以用onclick 03/25 19:48
→ ellyer:只是之後還有資訊要呈現出來,所以不知道怎麼在javascript 03/25 19:49
→ ellyer:裡面去做,謝謝你的意見,我會學著將程式修改的有邏輯和效率 03/25 19:51
→ ellyer:關於ajax,其實對他很不熟悉,目前只有用在sorttable XD 03/25 19:51
→ ellyer:這部分也會多看點資料的 謝謝 :) 03/25 19:52