iT邦幫忙

0

PHP內一個FORM放兩個按鈕的問題?

php
cheche905 4 年前8487 瀏覽

因為我想在一個表單內分別使用兩個按鈕進行更新與新增資料的部分,但不知道怎麼用JAVA進行傳值,請厲害的大大們協助,感激不已,以下是節錄的程式碼:

if(isset($_POST["action"])&&($_POST["action"]=="update"){ )  $sql_query="UPDATE `access` SET";
elseif(isset($_POST["action"])&&($_POST["action"]=="insert"){
{
  $sql_query="INSERT INTO `access`(`cGoldhealth`,`cAccessrule`  ,`cTimes`
  ,`cAccessDate`,`cPartner`,`cVisitarea`,`cName`,`cIDnumber`,`cTelephone`
  ,`cBorn`,`cResidence1`,`cResidence2`,`cAlone`,`cHealthact`,`cFor`,`cTube`
  ,`ccare`,`cLifefuntion`,`cHistory`,`cHistory1`,`cKidney`,`cKidney1`, `cMedicine`
  ,`cMedicine1`,`cMedical`,`cMedical1`,`cFirst`,`cFeedback`,`cFeedback1`,`cRecomment`)
  VALUES(";
<form action=""  method="post" name="formFix" id="formFix">
  <tr>
       
          <td colspan="2" align="center">
          <input name="cID" type="hidden" value="<?php echo $row_result["cID"];?>">
          <input name="action" type="hidden" value="update" >
          <input type="submit" name="botton" id="botton" value="更新資料"  >
          <input name="action" type="hidden" value="insert">
          <input type="submit" name="botton" id="botton" value="新增資料" > 
          <input type="reset" name="botton2" id="botton2" value="重新填寫">
          </form>
          </td>
          </tr>

在這個地方要怎麼利用java語法,讓按更新的按鈕就跳到update更新原有資料的條件去,按新增的按鈕就直接跳到insert的條件將表單資料直接往上增加,感謝大大的幫忙。

cheche905 iT邦新手 5 級 ‧ 4 年前 檢舉
不好意思最近沒上來,今天按照wise大的建議修改程式碼後已經能用了,再次感謝。

1 個回答

12
wiseguy
iT邦超人 1 級 ‧ 4 年前
最佳解答
  1. 不要把 input 欄位取名 action,這個名稱已經是 form 的 property 了,會混淆。

  2. 假設你把 <input name="action" type="hidden" value="update"> 名稱改為 operate 了,那麼把兩個 submit 改為:

&lt;pre class="c" name="code">&lt;input type="submit" value="更新資料" onclick="this.form.operate.value='update';">
&lt;input type="submit" value="新增資料" onclick="this.form.operate.value='insert';">

即可。

cheche905 iT邦新手 5 級 ‧ 4 年前 檢舉

那請問

&lt;pre class="c" name="code">if(isset($_POST["action"])&&($_POST["action"]=="update"){ )  $sql_query="UPDATE `access` SET";   
elseif(isset($_POST["action"])&&($_POST["action"]=="insert")

這個地方要怎麼改才能呼應下面javascript所傳送的值

wiseguy iT邦超人 1 級 ‧ 4 年前 檢舉

就把 action 改為 operate 就行了。

&lt;pre class="c" name="code">if ($_POST['operate'] == 'update')
{
	// 做 update
}
elesif ($_POST['operate'] == 'insert')
{
	// 做 insert
}
else
{
	echo '不支援的操作';
}
wiseguy iT邦超人 1 級 ‧ 4 年前 檢舉

iT邦幫忙MVPwiseguy提到:
<input name="action" type="hidden" value="update">

我注意到你寫了兩個 <input name="action" type="hidden" value="update"> 這個input,不必要,只要一個就行了 (記得 name 要改成 operate)。寫兩個不但是錯誤的,你 run 到天荒地老也 run 不出正確結果,因為 javascript 只會改第一個,而 php 只會抓到第二個。

我要發表回答

立即登入回答