2011-06-03 16 views
0

也許很容易! 我PHP的編碼器和我沒有在js的經驗,但我必須這樣做對我的代碼中的一個 假設我在頁面有SUB1單擊它必須是SUB1但值現在SUB2提交按鈕點擊更改它的值到另一個東西

 <html> 
     <head> 
     <title>pharmacy</title> 
     </head> 
     <body> 
     <form method="post" action="pharmacy.php"> 
     <?php 
     //some code 
      if(array_key_exists('update',$_POST)){ 
       //somecode 
       } 
     ?> 
<input type="submit" name="update" value="<?php echo if(isset($_GET['update'])) ? 'Show' : 'Update' ?> "> 
    </form> 
    </body> 
    </html> 

回答

4

show作爲函數名並沒有真正意義在這裏(IMO),但你可以這樣做:

<input type="submit" name="sub" value="sub1" onclick="show(this)"> 

function show(element) { 
    element.value = 'sub2'; 
} 

重要:

但是,這實際上將不會解決你的問題。只要您點擊該按鈕,就會提交表單,這意味着瀏覽器會發起一個新請求,並會加載新頁面。因此,無論如何,您創建當前頁面的每個更改都會丟失。

問題是:你想要做什麼?

在我看來,你應該改變服務器端的按鈕的值。你必須跟蹤哪個表單被提交(或多久我不知道你在做什麼),並相應地設置按鈕的值。

更新:

我看到幾個可能性,解決這個問題:

  1. 你可以繼續使用JavaScript和發送,並通過Ajax獲取數據。由於您對JavaScript沒有經驗,所以我想說在使用它之前,您必須先學習更多關於JavaScript和Ajax的知識。

  2. 您可以在您的URL中添加一個GET參數,通過該參數您可以知道要爲按鈕顯示哪個標籤。例如:

    <form method="post" action="?update=1"> 
    

    <input type="submit" name="sub" value="<?php echo isset($_GET['update']) ? 'Show' : 'Update' ?> "> 
    
  3. 至2類似,但使用一個session variable(而不是GET參數)來跟蹤的狀態。

UPDATE2:

因爲你已經有$_POST['update']你不需要的URL參數。這可能僅僅是:

<html> 
    <head> 
     <title>pharmacy</title> 
    </head> 
    <body> 
     <form method="post" action="pharmacy.php"> 
     <input type="submit" name="update" value="<?php echo isset($_POST['update']) ? 'Update' : 'Show'; ?> "> 
     </form> 
    </body> 
</html> 
+0

謝謝你菲利克斯,但它會告訴我這只是一秒鐘! – Nickool 2011-06-03 11:07:32

+0

@Negin:這就是我剛剛在我的答案中寫的。如果您提交表單,則會加載一個新頁面。 – 2011-06-03 11:10:26

+0

@Negin:請參閱我的更新。 – 2011-06-03 11:15:16

0
<html> 
<head> 
<title>test</title> 
<script> 
function show() 
{ 
    document.getElementById("sub").value= "sub2"; 
      return true; 
} 
</script> 
</head> 
<body> 

<form method="post"> 
<input type='submit' id="sub" name='sub' value="sub1" onclick="return show()"> 
</form> 
</body> 
</html> 
+0

'input'元素沒有'id'。 – 2011-06-03 11:07:36

+0

它不工作!該按鈕仍然sub1 – Nickool 2011-06-03 11:10:26

+0

@ Felix謝謝,我忘了添加id到元素 – Pradeep 2011-06-03 14:27:08

0

這應該這樣做

 function show(){ 
     document.getElementsByName('sub')[0].value = 'sub2'; 
     return false; 
     } 

編輯:,如果你不希望它提交表單,只需添加一個return false,但你需要將您的onclick從您的提交按鈕更改爲您的表格onsubmit;

+0

它有像費利克斯這樣的問題只是很短的時間! – Nickool 2011-06-03 11:11:39

+0

@ Negin,通過回答更新 – Niklas 2011-06-03 11:19:22

+0

Niklas它不能去if(array_key_exists)當我添加腳本時爲什麼? – Nickool 2011-06-03 11:26:47