admin管理员组

文章数量:1318336

maybe very easy! I'm php coder and I don't have experience in js but I must do this for one of my codes suppose I have sub1 in page after clicking it must be that sub1 but value now is 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>

maybe very easy! I'm php coder and I don't have experience in js but I must do this for one of my codes suppose I have sub1 in page after clicking it must be that sub1 but value now is 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>
Share Improve this question edited Jun 3, 2011 at 12:00 Nickool asked Jun 3, 2011 at 11:02 NickoolNickool 3,70212 gold badges43 silver badges72 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 4

show as function name does not really make sense here (imo), but you could do:

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

and

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

Important:

But that will actually not solve your problem. As soon as you click the button, the form is submitted, meaning the browser initiates a new request and will load a new page. So every change you made the current page is lost anyway.

The question is: What are you trying to do?

It seems to me that you should change the value of the button on the server side. You have to keep track which form was submitted (or how often, I don't know what you are trying to do) and set the value of the button accordingly.

Update:

I see several possibilities to solve this:

  1. You could keep using JavaScript and send and get the data via Ajax. As you have no experience with JavaScript, I would say you have to learn more about JavaScript and Ajax first before you can use it.

  2. You could add a GET parameter in your URL with which you can know which label to show for the button. Example:

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

    and

    <input type="submit" name="sub" value="<?php echo isset($_GET['update']) ? 'Show' : 'Update' ?> ">
    
  3. Similar to 2, but use a session variable (and not a GET parameter) to keep track of the state.

Update2:

As you are already having $_POST['update'] you don't need the URL parameter. It could just be:

<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>

This should do it

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

Edit: if you don't want it to submit the form, just add a return false, but then you'd need to change your onclick from your submit button to your forms onsubmit;

<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>

本文标签: phpSubmit button clicking changing the value of it to another thingStack Overflow