2011-06-03 42 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