PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#2 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

Petite erreur de copier coller mais simple a corriger :

echo '<script>setTimeout(function(){ window.location = "' . $_SERVER['PHP_SELF'] . '"; }, 5000);</script>';

#3 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

si mais ça c'est toi qui sais ce qu'il va être et quand l'afficher...


echo '<br/><br/>Votre réémission à bien été prise en compte !<br/>';

<<-- Afficher le code JS ici
echo '<script>setTimeout(function(){ window.location = "<?php echo $_SERVER['PHP_SELF']?>"; }, 5000);</script>';


                        }
                      } // FIN du else
                     } // FIN du if($TYPE_MSG == 'LST')
 

#4 Re : MySQL, PostgreSQL, etc... » jointure entre deux tables » 11-10-2016 14:47:51

Salut,

Est-ce qu'un client peut avoir plusieurs articles ?
Si c'est le cas il te faut une 3e table pour faire le lien article/client

Table clients
cli_id,
cli_nom
cli_prenom
...
...
...

Table articles
art_id
art_designation
art_prix
...
...
...

Table clients_has_articles
cli_id
art_id

Comme ça dans la table clients_has_articles tu auras les lignes suivantes par exemple :

cli_id | art_id
1 | 10
1 | 5
1 | 2

Le client "1" a les articles 10,5,2

Ensuite tu fais une requête du genre :

SELECT * FROM `clients` AS Cli JOIN `clients_has_articles` AS Rel ON Cli.cli_id = Rel.cli_id JOIN `articles` AS Art ON Art.art_id = Rel.art_id;

J'espère t'avoir mis sur la voie.

Kaimite

#5 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

ok, désolé j'ai compris l'inverse...

<?php

if ($traitementFiniEtOK == true) {
echo "Traitement terminé, vous allez être redirigé...";
echo '<script>setTimeout(function(){ window.location = "<?php echo $_SERVER['PHP_SELF']?>"; }, 5000);</script>';
}

?>

 

ça devrait faire l'affaire !

Kaimite

#6 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

ok, si vous avez les données affichées ça veut dire que les infos du formulaire sont bien transmises...

Pour qu'on soit bien clairs, le code que je vous ai donné permet de faire ceci uniquement.

Au clic sur le bouton "Sauvegarder" une pause de xx secondes est faite (rien d'autre) et à la fin des xx secondes le formulaire est soumis.

C'est bien ce que vous vouliez faire ?

#7 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

donc ça fonctionne vu que les infos du POST sont affichées smile

Essayez dans votre page de mettre :

<?php

if ( !empty($_POST) ) {
  echo "<p>Informations du POST</p>";
  echo "<pre>" . print_r($_POST, true) . "</pre>";
}

?>

Pour voir si le POST est bien transmis.

Kaimite

#8 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

Bonjour,

Voici un code rapide pour vérifier le fonctionnement de la soumission retardée.


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>PHP Débutant</title>
</head>
<body>

<form method='post' id='Application' action='<?php echo $_SERVER["PHP_SELF"]; ?> '>

  <p>
  <label for="MODE_REEMIS">Choisir un mode de réemission : BATCH (réemission différé) ou STREAM (réemission fil de l'eau : maximum 20 numéros)</label><br/>
  <select name="MODE_REEMIS" id="MODE_REEMIS">
    <option value="STREAM">STREAM</option>
    <option value="BATCH">BATCH</option>
  </select>
  </p>

  <p>
  <label for="abonne">Sélectionner l'application destinataire de la réémission  :</label><br/>
  <select name="abonne" id="abonne">
    <option value="abonne1">abonne1</option>
    <option value="abonne2">abonne2</option>
    <option value="abonne3">abonne3</option>
    <option value="abonne4">abonne4</option>
  </select>
  </p>
<input id='Submit' type='Submit'  class='btn' name='valid' value='Sauvegarder'/>
</form>

<?php

if ( !empty($_POST) ) {
  echo "<p>Informations du POST</p>";
  echo "<pre>" . print_r($_POST, true) . "</pre>";
} else {
  echo "Merci de soumettre le formulaire";
}

?>

<script>
  document.getElementById("Submit").addEventListener("click", function (e) {
    e.preventDefault();
    setTimeout(function(){ document.getElementById("Application").submit() }, 1500);
  });
</script>
</body>
</html>

Pour le test j'ai mis le délais à 1.5 sec
 

Si ça fonctionne ça veut dire que votre soucis vient d'ailleurs dans le code.

Kaimite

#9 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

Bonjour,

J'ai essayé de comprendre le traitement du formulaire mais le code est assez compliqué à lire...

Vous pouvez essayer ceci :

Selon votre code :
<form method='post' id='Application' action='<?php echo $_SERVER["PHP_SELF"]; ?> '>
...
...
...
<input id='Submit' type='Submit'  class='btn' name='valid' value='Sauvegarder'/>

<script>
               document.getElementById("Submit").addEventListener("click", function (e) {
                 e.preventDefault();
                 setTimeout(function(){ document.getElementById("Application").submit() }, 5000);
               });
               </script>

Kaimite

#10 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

J'avoue que je ne comprends pas tout mais, de toutes façons, le soucis doit venir des données à enregistrer.

D'où viennent $TYPE_MSG, $FORMAT_MSG, $numPatient, $ETAT_REEMIS et $MODE_REEMIS ?

Si elles viennent d'un formulaire ce doit être celui qui contient le bouton de soumission.

Vous ne pouvez pas faire ça :

<form>
<input type="text" name="TYPE_MSG" value="tutu" />
</form>

<form action="" id="myForm" method="post">
   <input type="submit" id="submitButton" class='btn' value="Sauvegarder">
</form>

L'appuie sur le bouton "submit" ne soumet que les données du formulaire parent, pas les autres.
Vous ne pouvez pas non plus, à ma connaissance, imbriquer des formulaires.

Kaimite

#11 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

Salut,

En regardant ton code je ne vois aucune infos dans le formulaire, juste le bouton "submit", ni de test pour savoir si le formulaire a été soumis... 

Le délais de 5 secondes est là pour attendre la fin d'un traitement ?


<?php
if ( !empty($_POST['formulaireSoumis']) ) {
  //--> Mon traitement
}
?>

<form action="" id="myForm" method="post">
  <input type="hidden" name="formulaireSoumis" value="1" />
   <input type="submit" id="submitButton" class='btn' value="Sauvegarder">
</form>

<script>
   document.getElementById("submitButton").addEventListener("click", function (e) {
     e.preventDefault();
     setTimeout(function(){ document.getElementById("myForm").submit() }, 5000);
   });
</script>
 

Kaimite

#12 Re : Forum Général PHP » Etre rediriger après x secondes après un submit » 16-11-2016 08:22:41

Salut,

Si c'est sur un bouton submit il faut utiliser du Javascript pour intercepter l'événement submit, faire un temporisation de xx secondes en soumettre le formulaire via JS.


<form action="" id="myForm">
  <input type="submit" id="submitButton" value="Valider">
</form>

<script>
document.getElementById("submitButton").addEventListener("click", function (e) {
  e.preventDefault();
  setTimeout(function(){ document.getElementById("myForm").submit() }, 5000);
});
</script>
 

Kaimite

#13 Re : Forum Général PHP » Boucle while » 21-11-2014 16:59:54

Salut,

Là tu dois regarder du coté des fonctions récursives.

C'est une fonction qui va s'appeler elle même au besoin.

http://openclassrooms.com/courses/initi … tilisation

Kaimite

#14 Re : Forum Général PHP » Problème de logique sur des requêtes » 14-11-2014 18:11:14

Salut,

Voici un code qui te permet d'obtenir le code HTML suivant :

<h1>Rubrique 1</h1>
<ul>
<li><a href="http://www.exemple.com">mon lien 1</a></li>
<li><a href="http://www.exemple.com">mon lien 2</a></li>
</ul>

<h1>Rubrique 2</h1>
<ul>
<li><a href="http://www.exemple.com">mon lien 3</a></li>
<li><a href="http://www.exemple.com">mon lien 4</a></li>
</ul>
 

Tu ne fais qu'on requête qui récupérer tous les liens et tu ordonne via 'rubrique' pour regrouper les liens.


<?php
$req_liens = $bdd -> query("SELECT * FROM `liens` ORDER BY `rubrique` ASC") or die(mysql_error());

$rubrique     = null;
$premier_tour = true;

while ($row = $req_liens->fetch_assoc()) {
    //--> Si la rubrique est différente de $rubrique on l'affiche
  if ( $rubrique !== $row['rubrique'] ) {
   
    //--> Si on effectue le premier tour pas besoin de fermer la liste précédente
    if ($premier_tour == false) {
      echo '<ul>';
    }
   
    echo '<h1>' . $row['rubrique'] . '</h1>';
    echo '<ul class="liste_liens">';
   
    //--> Maj de la rubrique en cours
    $rubrique     = $row['rubrique'];
    $premier_tour   = false;
  }
 
  //--> Affichage du lien dans la liste
  echo '<li><a href="' . $row['lien'] . '"><img src="' . $row['image'] . '" alt="" /> ' . $row['libelle'] . '</a></li>';
}

//--> On ferme la dernière liste
echo '</ul>';
 

Pour aller un peu plus loin (mais ça ne change rien dans la logique du code ci-dessus), il est préférable de "sortir" les rubriques dans une autre table.


Le but est d'avoir 2 tables :

- une table "liens" avec id, url, libelle, image, rub_id
- une table "rubriques" avec id, libelle

Et au lien d'enregistrer le nom de la rubrique dans le lien tu fait une référence à la rubrique via son ID (ici c'est le champ rub_id de la table liens qui va correspondre au champ id de la table rubrique).

L'avantage c'est que si tu veux changer le nom d'une rubrique il suffit de la changer dans la table rubriques et il sera automatiquement mis à jour pour tous les liens qui y sont associés.

Ensuite pour les requêtes il suffit de faire une requête jointe (sur 2 tables) pour récupérer les infos dont tu as besoin.

Si tu veux plus d'infos n'hésite pas.

Kaimite

Pied de page des forums

Propulsé par FluxBB