2013-05-15 17 views
0

我有一個表格我試圖用input附加到表單動作。這裏是我的表單代碼:
用php形成動作

 <form ACTION="_update/update.php?orderId=<?php $_POST['orderId']; ?>" name="msChangeForm" method="POST"> 
     <fieldset> 
      <p> 
      <label for="orderId">What is you order number?</label><br /> 
      <input name="orderId" type="text" id="orderId" value="" /> 
      </p> 
      <p> 
      <input type="submit" value="Next"/> 
      </p> 
     </fieldset> 
     </form> 

我不斷收到此錯誤:

(!) Notice: Undefined index: orderId in C:\wamp\www\ms\test.php on line 48 Call Stack #TimeMemoryFunctionLocation 10.0020140184{main}( )..\test.php:0 " name="msChangeForm" method="POST">

即使我得到的錯誤,形式的作品。我知道我需要一些這種形式的PHP代碼,但不知道要使用什麼。

+1

除非您有一些JavaScript代碼在用戶輸入其訂單ID後修改DOM,否則操作屬性中的URL將不會更改,因爲在將頁面發送給用戶之前處理PHP。您應該可以使用瀏覽器的開發人員工具,甚至可以查看源代碼,以查看操作參數的URL。 – j08691

+0

這意味着'$ _POST ['orderId']'是空的。所以它提交給'_update/update.php?orderId =',沒有訂單ID。 – Pitchinnate

+0

您確定您要發佈到您的表單所在的頁面嗎?爲了使這個代碼正常工作,其他一些表單必須發佈到這​​個'test.php'頁面。通常形成帖子來處理頁面,而不是頁面上的其他表單。也許你的意思是'$ _GET ['orderId']'而不是? – qJake

回答

3

當你第一次加載頁面時,它使用HTTP get方法請求,所以$_POST爲空。

最簡單的解決方法是將$_POST['orderId']更換爲isset($_POST['orderId']) ? $_POST['orderId'] : ''

+0

也許我會以錯誤的方式回答這個問題。是有用的r在表格中輸入一個數字。然後使用該數字(這是MySQL數據庫表中的主鍵)在新頁面上檢索該記錄。有什麼建議麼? – Michael

+0

@Michael基本沒關係。唯一的問題是首頁加載:表單尚未提交,所以沒有'orderId',這就是爲什麼你會注意到。如果你總是提交到另一個頁面,我想你甚至不需要查詢字符串中的'orderId'(只需在表單中留下'action =「_ update/update.php」''。 –

+0

瘋狂的東西是表單的工作是應該的,但它有一個警告,警告是在表單頁面上,而不是目標頁面 – Michael

0

表示$_POST['orderId']爲空。所以這是提交到_update/update.php?orderId=沒有訂單號。然而,它的工作原理是,你提交表單並且有用戶輸入orderId,所以你應該只在第一次加載頁面時發出通知。無論如何,你不需要它,那實際上是$_GET['orderId']不是發佈。