PHP - HTML form iki olası eylemler?

4 Cevap php

Ben bir kayıt sayfası oluşturarak ve ben kullanıcı veritabanına ekler bir onayla düğmesine tıklamadan önce kendi bilgilerini gözden geçirmek ve geri dönün ve onu düzenlemek için fırsat vermek istiyorum.

Iki farklı komut işaret ya da ben tüm formu çoğaltmak yerine gizli alanları kullanmak zorunda gönderme düğmeleri eklemek için bir yolu var mı?

Herhangi bir tavsiye takdir.

Teşekkürler.

4 Cevap

İki farklı isimler ile gönderme düğmeleri kullanabilirsiniz:

<input type="submit" name="next" value="Next Step">
<input type="submit" name="prev" value="Previous Step">

Ve sonra düğmesi devrede ne teslim edin:

if (isset($_POST['next'])) {
    // next step
} else if (isset($_POST['prev'])) {
    // previous step
}

Bu çalışıyor çünkü only the activated submit button is successful :

  • Bir formu bir düğmeye göndermek fazla içeriyorsa, yalnızca düğme başarılı olduğunu teslim aktive.

O $_GET veya $_POST görünür, böylece her HTML gibi input eleman sadece onlara bir isim ve değer çifti verebilirsiniz. Sadece düğmeye bağlı bir koşullu onay yapabilir Bu şekilde bastırdı. Örneğin

<form action="foo.php" method="post">
    <input type="text" name="input">
    <input type="submit" name="action" value="Add">
    <input type="submit" name="action" value="Edit">
</form>

ile

$action = isset($_POST['action']) ? $_POST['action'] : null;
if ($action == 'Add') {
    // Add button was pressed.
} else if ($action == 'Edit') {
    // Edit button was pressed.
}

You can hatta soyut, bu daha uzak bir dizi eylemler alarak.

yapabilirsiniz

gibi:

http://sureshk37.wordpress.com/2007/12/07/how-to-use-two-submit-button-in-one-html-form/

php aracılığıyla

<!--    userpolicy.html      -->
<html>
<body>
<form action="process.php" method="POST">
    Name <input type="text" name="username">
    Password <input type="password" name="password">
    <!--  User policy goes here           -->

    <!--            two submit button            -->
    <input type="submit" name="agree" value="Agree">
    <input type="submit" name="disagree" value="Disagree">
</form>
</body>
</html>

/*         Process.php         */
<?php
if($_POST['agree'] == 'Agree') {
    $username = $_POST['username'];
    $password = $_POST['password'];
      /* Database connection goes  here */

}
else {
    header("Location:http://user/home.html");
}
?>

veya javascript ile

Ben kesinlikle oldukça apaçık KURU ihlali olacağını, formunu tekrar olmaz. Muhtemelen size aynı veri kontrolleri form gönderildiğinde, her zaman ihtiyacınız olacak, bu yüzden belki de sadece tek bir eylem var ve sadece kullanıcı "onaylama" butonuna çarptığında "veritabanına eklemek" parçası ile çalıştırabilir.