单击“提交”按钮将其值更改为其他内容

时间:2011-06-03 11:02:20

标签: php javascript

也许很容易! 我是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>

3 个答案:

答案 0 :(得分: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. 您可以在网址中添加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参数)来跟踪状态。

  4. <强> 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>
    

答案 1 :(得分: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>

答案 2 :(得分:0)

这应该这样做

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

修改:如果您不希望它提交表单,只需添加return false,但您需要从提交中更改onclick按钮到您的表单onsubmit;