Si erreur history.back + background ne fonctionne pas
Résolu
barale61
Messages postés
1126
Date d'inscription
Statut
Membre
Dernière intervention
-
barale61 Messages postés 1126 Date d'inscription Statut Membre Dernière intervention -
barale61 Messages postés 1126 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Si j'ai une erreur de doublon, je retourne sur ma page formulaire et je souhaite modifier le background ainsi que la couleur du texte mais cela ne fonctionne pas:
l'history.back fonctionne mais pas le reste. Je vous remercie de votre aide.
Si j'ai une erreur de doublon, je retourne sur ma page formulaire et je souhaite modifier le background ainsi que la couleur du texte mais cela ne fonctionne pas:
?>
<script>
history.back();
$element = document.getElementById("denomination").style;
$element.background = "red";
$element.color = "white";
</script>
<?php
l'history.back fonctionne mais pas le reste. Je vous remercie de votre aide.
1 réponse
-
Bonjour
Quand tu fais history.back();, tu changes de page. Donc tu quittes la page présente. Mais comme le script fait partie de la page, plus de script. Donc les lignes suivantes ne seront pas exécutées.
C'est dans la page vers laquelle tu vas qu'il faut modifier ces attributs.-
- Je ne suis pas sûr, mais a priori je dirais non.
history.back n'est sans doute pas la bonne méthode à utiliser. Il vaudrait mieux sauvegarder le contenu du formulaire mal rempli dans une session, et utiliser un window.location pour retourner au formulaire et le pré-remplir avec les valeurs mémorisées en session. Personnellement, je fais toujours la validation du formulaire dans le même script que le formulaire lui-même, ça me dispense de cette mémorisation du contenu puisque je le ré-utilise tout de suite si nécessaire. - J'ai donc utilisé les sessions mais je n'arrive pas à la détruire au moment voulu pour que l'erreur ne s'affiche plus si pas de doublon. Donc j'ai fais session_destroy(); à la ligne 42 mais elle ne se détruit pas.
// ENREGISTREMENT DE LA FICHE include 'connexion.php'; // Si le formulaire est bien posté if (isset($_POST['envoyer'])){ $denomination = htmlspecialchars(trim($_POST['denomination'])); $contact = htmlspecialchars(trim($_POST['contact'])); $adresse = htmlspecialchars(trim($_POST['adresse'])); $cp = htmlspecialchars(trim($_POST['cp'])); $ville = htmlspecialchars(trim($_POST['ville'])); $email = htmlspecialchars(trim($_POST['email'])); $telephone = htmlspecialchars(trim($_POST['telephone'])); $portable = htmlspecialchars(trim($_POST['portable'])); // VERIFICATION DE L'UNICITE DE LA DENOMINATION $erreur = []; $maVar = $_POST['denomination']; $query = $bdd->query("SELECT COUNT(denomination) FROM fiche_client WHERE denomination = '$maVar'"); $nombre = $query->fetch(); if ($nombre[0] >0){ $erreur['existe'] = "Cette dénomination existe déjà !"; if(!empty($erreur)){ //Création de la session mon_tableau if(session_id() == "") session_start(); $_SESSION['mon_tableau'] = array($denomination,$contact,$adresse,$cp,$ville,$email,$telephone,$portable); header('location:../index.php?page=ajoutClient'); } } else{ // On détruit la session denomination pour les doublons pour la réinitialiser // On écrase le tableau de session $_SESSION = array(); // On détruit la session session_destroy(); #Requête préparée pour l'insertion $req = $bdd->prepare('INSERT INTO fiche_client(denomination, contact, adresse, cp, ville, email, telephone, portable) VALUES(:denomination, :contact, :adresse, :cp, :ville, :email, :telephone, :portable)'); $req->execute(array( 'denomination' => $denomination, 'contact' => $contact, 'adresse' => $adresse, 'cp' => $cp, 'ville' => $ville, 'email' => $email, 'telephone' => $telephone, 'portable' => $portable )); $req->closeCursor(); // Termine le traitement de la requête // CREATION DU DOSSIER CLIENT $dossier = suppAccent($denomination); $dossier = mb_strtoupper($dossier); if(!is_dir("../Dossiers_Clients/".$dossier)){ mkdir("../Dossiers_Clients/".$dossier, 0777, true); } header('Location:../index.php'); } } else { echo "Vous devez renseigner tous les champs !"; }
-