0

Hi
I'm facing a problem with having two forms in the same page.The problem is that the action is taken from only the first form.
For example :

<html>

<body>
<form action='test.php' method='POST'>
<input type='submit' />
</form>

<form action='testme.php' method='POST'>
<input type='submit' />
</form>

</body>

</html>

when I hit on submit (both buttons will send me to the page : test.php )!
so how can I make each form send me to it's page ?

I hope you were able to understand me.

7
Contributors
12
Replies
51
Views
3 Years
Discussion Span
Last Post by keloa
0

Can't see a problem. Tried your markup and it works fine for me.

DO you have a redirect (header) in the testme.php page?

0

redirect to where ?
No the two forms are sending me to the first page ,which is test.php in my example, even if it is empty !

0

sorry , this is the original page :(index)

<?php session_start(); ?>
<?php require('inc/header.php'); 
?>
<body>
    <table cellspacing="9"  id='table_home'>
        <br /><br /><br /><br /><br />
            <form action="track.php" method="POST">
             <center>   <input type="text" name="track" placeholder="trace number" /> 
             <input class='submit' type="submit" value="Trace" /></center>
            </form>

        <tr>
        <td>
            <center><img src='images/Mouse.png'/></center>
            <b>test<b>
            <p>testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest </p>
        </td>
        <td>
            <center><img src='images/Phone.png'/></center>
            <b>test<b>
            <p>testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest </p>
        </td>
        <td>
            <center><img src='images/box.png'/></center>
            <b>test<b>
            <p>testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest</p>
        </td>
        </tr>
    </table>
</body>
<?php
require('inc/footer.php');
 ?>

The header page : (header.php)

<html>
<head>
    <title>test</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="inc/style.css"/>
    <link rel="shortcut icon" href="favicon.png" />
</head>
<header>
    <table>
        <tr>
        <td width="250">
            <img src="images/logo.png"/>
        </td>
        <td>
        <center>
        <div id='navbar'>
            <ul>
                <li><a href='index.php'>test</a></li>
                <?php if(isset($_SESSION['username']) && isset($_SESSION['password'])){echo "
                <li><a href='new_order.php'>test</a></li>
                <li><a href='profile.php'>test</a></li>
                <li><a href='contact.php'>test</a></li>  
                <li><a href='logout.php'>test</a></li>";
}else{
    echo"<li><a href='join.php'>Register</a></li>";
    echo "<form action='checklogin.php' method='POST'>
<lable>username</lable><input type='text' name='username' placeholder='username' />
<lable>password</lable><input type='password' name='password' placeholder='password' />
<input class='submit' type='submit' value='login' />
    </from>";
}

?>            
            </ul>
        </div>
        </center>
        </td>
        </tr>
    </table>
</header>

if I wasn't loged in then I'll have two forms :
1-login form
2-tracing form

0

Why dont use Ajax with <input type="button" onclick="ajaxfunction()" /> not submit?
ajaxfunction() is a javascript function. That function will call your php code.
Yours forms will be:

<form methos="POST">
    .....
    <input class='submit' type='button' value='login' onclick="Login()"/>
</form>


<form method="POST">
    .....
    <input class='submit' type="button" value="Trace" onclick="Tracing()"/>
</form>

You need after that some javascript code in your page

<script type = "text/javascript">

//This function create an Ajax object
//it's a standard function dont need to change it
    function getxmlhttp()
    {
        if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
            return new XMLHttpRequest();
        }
        else {
        // code for IE5, IE6
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
    }



    function Login()
    {
        var ajax = getxmlhttp();
        ajax.onreadystatechange = function() {
        if (ajax.readyState == 4 && ajax.status == 200) 
        {
            alert(ajax.responseText);
            //You can do what do you want with responseText
        }
    }
    ajax1.open("POST", "checklogin.php?parameters, true);
    ajax1.send();   

    }

    function Tracing()
    {
        var ajax = getxmlhttp();
        ajax.onreadystatechange = function() {
            if (ajax.readyState == 4 && ajax.status == 200) 
            {
                alert(ajax.responseText);
                //You can do what do you want with responseText
            }
        }
        ajax1.open("POST", "track.php?parameters, true);
        ajax1.send();   
    }

</script>

The ajax.responseText is filled by the echo and print php instructions.

0

This is probably your error:

echo "<form action='checklogin.php' method='POST'>
<lable>username</lable><input type='text' name='username' placeholder='username' />
<lable>password</lable><input type='password' name='password' placeholder='password' />
<input class='submit' type='submit' value='login' />
</from>";

You have a severe case of spelling tag names badly.
It's <label> and </form>

The last one is probably responsible for your problem - correct it. If you use a decent IDE this probably would not have occurred.

0

^Thanks man,that was my problem.Now my problem solved.Thank you guys

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.