2017-02-05 4 views
0

Wie wird das Popup-Bestätigungsdialogfeld eingestellt, nachdem die Formularvalidierung in PHP durchgeführt wurde? Wenn der Benutzer auf die Schaltfläche "Absenden" klickt, sollte er die Benutzereingabe bestätigen und schließlich die Bestätigungsmeldung wie "Möchten Sie speichern?" Mit OK und Cancel-Tasten, dann sollten nur die Daten in der Datenbank gespeichert werden. siehe unten Code.wie Sie das PHP-Bestätigungsdialogfeld vor dem Speichern und nach der Formularvalidierung in einer einzelnen Seite einstellen

<?php 
    error_reporting(~E_NOTICE); 
    $name_err=''; 
    $name=''; 
    $type_err=''; 
    $type=''; 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if (isset($_POST['submit'])) { 

       $e = true; 

     if (empty($_POST['name'])) { 
      $name_err = "Please enter the Product Name"; 
      $e = false; 
     } else { 
      $name = $_POST['name']; 
      // check if name only contains letters and whitespace 

     } 
    if (empty($_POST['type'])||$_POST['type']=="select") { 
      $type_err = "Please select the Product Type"; 
      $e = false; 
     } else { 
      $type = $_POST['type']; 

        } 
    $con = mysqli_connect("localhost", "root", "", "csr"); 
    if (!$con) { 
     die('Could not connect: ' . mysql_error()); 
    } 


} 
//final check whether it is true the input will process 

    if($e) 
    { 

     mysqli_select_db($con, "csr"); 

     mysqli_query($con, "insert into products(employee_id, name, type, brand, model, url, conditions, about, listedon, image_path, reserved_price, Purchased_price, buy_now_price, sale_end_date) 
            values('$eid','$name','$type','$brand','$model','None','$condition','$about','$listedon','$imgName','$reserved_price','$Purchased_price','$buy_now_price','$sale_end_date')") or die('Could not connect: ' . mysql_error()); 

     header('Location:/sellproduct/index/'); 
     mysqli_close($con); 

    } 
} 
?> 
<form action=" " method="post" class="stdform stdform2" autocomplete="off" enctype="multipart/form-data"> 

        <p> 
          <input type="hidden" name="employee_id" value="" id="employee_id" /> 
        </p> 
       <p> 
        <label for="name" class="required">Product Name</label> 
        <span class="field"> 
         <input type="text" name="name" id="name" value="<?php echo $name;?>" /><br><span class="error"><?php echo $name_err;?></span></span> 

       </p> 
       <p> 
        <label for="type" class="required">Product Type</label> 
        <span class="field"> 
        <select name="type" id="type" minlength="2" maxlength="60"> 
          <option value="select" label="Select" <?php echo ($type == "select" || empty($type) ? "selected='selected'" : ""); ?> selected disabled >Select</option> 
          <option value="Electronics" label="Electronics" <?php echo ($type == "Electronics" ? "selected='selected'" : ""); ?>>Electronics</option> 
          <option value="Appliances" label="Appliances" <?php echo ($type == "Appliances" ? "selected='selected'" : ""); ?>>Appliances</option> 
<form action=" " method="post" class="stdform stdform2" autocomplete="off" enctype="multipart/form-data"> 

        <p> 
          <input type="hidden" name="employee_id" value="" id="employee_id" /> 
        </p> 
       <p> 
        <label for="name" class="required">Product Name</label> 
        <span class="field"> 
         <input type="text" name="name" id="name" value="<?php echo $name;?>" /><br><span class="error"><?php echo $name_err;?></span></span> 

       </p> 
       <p> 
        <label for="type" class="required">Product Type</label> 
        <span class="field"> 
        <select name="type" id="type" minlength="2" maxlength="60"> 
          <option value="select" label="Select" <?php echo ($type == "select" || empty($type) ? "selected='selected'" : ""); ?> selected disabled >Select</option> 
          <option value="Electronics" label="Electronics" <?php echo ($type == "Electronics" ? "selected='selected'" : ""); ?>>Electronics</option> 
          <option value="Appliances" label="Appliances" <?php echo ($type == "Appliances" ? "selected='selected'" : ""); ?>>Appliances</option> 
<form action=" " method="post" class="stdform stdform2" autocomplete="off" enctype="multipart/form-data"> 

        <p> 
          <input type="hidden" name="employee_id" value="" id="employee_id" /> 
        </p> 
       <p> 
        <label for="name" class="required">Product Name</label> 
        <span class="field"> 
         <input type="text" name="name" id="name" value="<?php echo $name;?>" /><br><span class="error"><?php echo $name_err;?></span></span> 

       </p> 
       <p> 
        <label for="type" class="required">Product Type</label> 
        <span class="field"> 
        <select name="type" id="type" minlength="2" maxlength="60"> 
          <option value="select" label="Select" <?php echo ($type == "select" || empty($type) ? "selected='selected'" : ""); ?> selected disabled >Select</option> 
          <option value="Electronics" label="Electronics" <?php echo ($type == "Electronics" ? "selected='selected'" : ""); ?>>Electronics</option> 
          <option value="Appliances" label="Appliances" <?php echo ($type == "Appliances" ? "selected='selected'" : ""); ?>>Appliances</option> 
</select><br><span class="error"><?php echo $type_err;?></span></span>    </p> 

<p class="stdformbutton"> 
        <input type="submit" class="bluishBtn button_small" name="submit" value="SAVE" id="submit"> 

        <button name="cancel" id="cancel" type="button" class="greyishBtn button_small">Cancel</button>    </p> 

</form> 

bitte helfen Sie mir.

Antwort

1

Sie können nicht ein Dialogfeld direkt von PHP, in Ihrer letzten if-Anweisung generieren, sollten Sie eine einfache HTML mit JavaScript-Echo, das auf einem anderen PHP-Seite umleitet Ihre Eingabe in Argumente nimmt es einzufügen:

echo ' 

<html> 
<script type="text/javascript"> 

function input_confirm(){ 

    var r = confirm("Confirm this input : '.$_POST['name'].'-'.$_POST['type'].'"); 
    if(r){ 
     window.location.href = "insert.php?type='.$_POST['type'].'&name='.$_POST['name'].'"; 
    } 
} 


</script> 

<body onload="input_confirm()"> 
</body> 

</html> 

'; 
+0

Danke für Ihre schnelle Antwort, es fragt keine Bestätigungsbox und es nimmt auch keine Eingaben. –

+0

Ich habe gerade den Code korrigiert. Es gab einen Fehler, da die Funktion auch als Bestätigen bezeichnet wurde. Ich habe es gerade versucht, jetzt sollte es funktionieren :-) – saperlipopette

+0

Vielen Dank ..... Einen schönen Tag !!! –

0

Die optimale Lösung besteht darin, zwei Validierungen durchzuführen - auf Client- und auf Serverseite. Es besteht keine Notwendigkeit, den Server mit ungültigen Daten zu belästigen, die auf einem Client-Rechner vorab validiert werden könnten.

Für eine clientseitige Validierung müssen Sie etwas Javascript schreiben, das das Formular validiert, nachdem der Benutzer auf Schaltfläche klicken. Natürlich Submit Knopf muss Standard-Typ-Taste sein, Sie wollen nicht, dass es tatsächlich einzureichen, sondern nur Javascript-Validierungsfunktion aufrufen. Sie können validate.js dafür verwenden, wenn Sie möchten.

So zeigt die Validierungsfunktion, nachdem es seinen Job gemacht hat, Pop-up mit Frage, ob Daten gespeichert werden oder nicht oder ... verschiedene Pop-up mit Informationen, die das Formular korrigiert werden muss. Legen Sie diese beiden Formen in unsichtbare DIV-Blöcke und zeigen Sie sie bei Bedarf an. Nun in einer Frage Pop-up die OK Schaltfläche ruft eine andere Javascript-Funktion, die jetzt einen Ajax-Aufruf an den Server sendet alle Formulardaten.

Wenn Ihre Validierung von einem Datenbankzustand oder irgendetwas, das auf dem Server liegt, abhängt, können Sie einen zusätzlichen Ajax-Aufruf in der Validierungsfunktion tätigen, um den Server nach weiteren Informationen zu fragen oder sogar einige Felder sofort zu bestätigen. Dies ist beispielsweise nützlich, wenn Sie ein Registrierungsformular haben und dem Benutzer sofort Informationen anzeigen möchten, dass ein Spitzname bereits verwendet wird, damit er diesen vor dem Drücken von Sumbit ändern kann.

Dann nach Erhalt dieser Daten durch den Server benötigen Sie , um eine andere serverseitige Validierung zu machen, um Datenintegrität und mögliche Angriffe zu überprüfen.

Hoffe, das hilft. Übrigens, wenn Sie solche Aktionen auf einer einzelnen Seite machen müssen, empfehle ich jQuery und validate.js zu implementieren.

Verwandte Themen