J'ai essayé de vider les champs du formulaire après une soumission de formulaire réussie, cependant, il semble seulement que cela soit possible via jQuery et je ne peux pas comprendre comment. Je ne veux pas utiliser .click () ou .submit () par exemple $("#signuBbtn").click() pour effacer les champs de saisie car il effacera toujours les champs du formulaire.

Je souhaite effacer les champs du formulaire uniquement lorsque le formulaire est envoyé avec succès et que les données publiées sont insérées dans MySQL.

Si je ne peux pas effacer les champs du formulaire via PHP, comment appeler la fonction JQuery qui efface les champs du formulaire ?

register.php

<?php
    if(!$formValidationError) {
        //code for clearing the input field PHP code
        //OR
        //calls JQuery form clearing function which is clearInput()
    }
?>

script.js

    function clearInput() {
        $("#email, #username, #password").each( function() {
           $(this).val('');
        });
    }

Pour ajouter plus d'informations, je ne souhaite pas rediriger ou actualiser la page. De plus, dans le register.php , je veux juste savoir comment appeler clearInput() à partir du fichier js externe qui est script.js . OU je veux juste savoir comment utiliser les méthodes php pour effacer les champs de saisie.

0
H.Kim 24 janv. 2017 à 11:57

4 réponses

Meilleure réponse

Une solution rapide pour votre situation.

Pour appeler une fonction js depuis php:

<?php
    if(!$formValidationError) {
        echo '<script type="text/javascript">',
            '$(function(){ clearInput(); })',
        '</script>';
    }
?>

Ou

<?php
    if(!$formValidationError) {
?>

    <script type="text/javascript">
        $(function(){ clearInput(); })
    </script>

<?php } ?>

Faites écho au script js après la balise de script de la bibliothèque jQuery.

0
Salimd83 24 janv. 2017 à 09:20

Vous pouvez simplement utiliser la fonction reset() sur l'élément de formulaire.

<form id="form">
    .........
    ........
</form>

Code jQuery:

$("#form")[0].reset()
// or
$("#form").get(0).reset()
0
Object Manipulator 24 janv. 2017 à 09:04

En fait, vous pouvez effacer les champs du formulaire avec php lorsque vous avez inséré avec succès les valeurs dans la base de données avec $_POST = array(); cela effacera les données du formulaire

Jetez un oeil par exemple

<?php


// your validation here

try {
    $stmt = $dbh->prepare("INSERT INTO users (firstName,lastName,title,email,userPassword,categoryID,provinceID,cityID,planID) VALUES(?,?,?,?,?,?,?,?,?)");
    if ($stmt->execute(array(
        $firstname,
        $lastname,
        $title,
        $email,
        $hash,
        $category,
        $province,
        $city,
        $plan
    ))) {


        echo "Form submitted";

        $_POST = array(); //clear input fields
    } else {

        echo "form not submitted";
    }
}
catch (PDOException $e) {


    error_log($e->getMessage());
}


?>
0
Masivuye Cokile 24 janv. 2017 à 09:15

Essayez ceci pour effacer tous les types de champs de saisie

$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');  
0
Sujal Patel 24 janv. 2017 à 09:05