Jump to content

How to know which button was pressed?


PhpNobody

Recommended Posts

Hello. I decided to create my own browser game and started learning PHP and HTML. Everything is going quite well now I'm creating a primitive version of the game. I'm reading tutorials and moving forward fast. But I started thinking about the combat system and got stuck. I want to let my users to choose which monster to attack with buttons. I made this form as an example:

 

<p>Choose which monster you want to hunt:</p>
    Rat<br />
        <form action='main.php?p=hunt' method='post'>      
            <input type='submit' name='rat' value='Attack' /><br /><br />
    Slime<br />
        <form action='main.php?p=hunt' method='post'>           
            <input type='submit' name='slime' value='Attack' />
      </form>

 

And I'd like to know what code should I use to know which submit button was pressed, the rat or slime one. I currently only know how to do a lot of IF's to determine it so is there a short way to do it? If anyone can, please help me, and if you can try to explain it simply as I'm still starting to understand php  :-[ . And also I'd like some suggestions where to run my combat script (the same page where the form is or it should be on a different page, if the page should use id from a rand() function and so on).

 

Thanks

Link to comment
Share on other sites

You can do the following:

if($_POST['rat'] == 'Attack')
{
//rat was attacked
}
elseif($_POST['slime'] == 'Attack')
{
//slime was attacked
}

which would get quite long if you have lots of attacks.

 

Or you could do the following:

 

HTML

<p>Choose which monster you want to hunt:</p>

        <form action='main.php?p=hunt' method='post'>      
            <input type='submit' name='attack' value='Rat' /><br /><br />
            <input type='submit' name='attack' value='Slime' /><br /><br />
            <input type='submit' name='attack' value='Something Else' />
      </form>

 

PHP

switch($_POST['attack'])
{
  case 'Rat':
    //rat was attacked
    break; //this is needed to prevent your slime attack scenario being called at the same time
  case 'Slime':
    //slime was attacked
    break; //this is needed to prevent your something else attack scenario being called at the same time
  case 'Something Else':
    //something else was attacked
    break;//break is optional for the final event, but it does no harm to leave it there
}

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.