IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lancer une commande javacript avec un header(location:) PHP ?


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Lancer une commande javacript avec un header(location:) PHP ?
    Bonjour tout le monde,

    Est-il possible de lancer un script javascript avec un header(location: ) de PHP ?

    ou juste lancer ce code après le header :

    document.form.submit();

    Important :

    Mon header est déjà constitué comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: EntreeDeDonnees.php");
    Il faut donc ajouter la ligne javascript en plus de la redirection.

    Merci d'avance.

    beegees

  2. #2
    jnore
    Invité(e)
    Par défaut
    Le javascript est coté client, la seule chose que tu puisse faire est de lancer un fonction sur un onload sur la page au niveau du body.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dit nous plutot ce que tu cherches a obtenir comme comportement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Dit nous plutot ce que tu cherches a obtenir comme comportement.
    Bonjour Sabotage,

    Je t'explique exactement le problème :
    J'ai une page qui contient une liste déroulante alimentée par ma bd, elle contient le nom de mes tables.
    Dès que je clic sur Etudiants (il y'en a d'autres), j'ai le matricule, nom, prénom, email.
    Je veux mettre le nom d'un étudiant à jour, je change donc Dupont par Dupond.
    J'appuie sur un bouton nommé "mettre à jour", il met à jour la base de données MYSQL.
    une page blanche montre son nez, c'est donc pourquoi j'utilise le retour en arrière.

    Arrivé à la page précédente, ma liste déroulante contient toujours le nom "Etudiants" dans son choix par défaut car il contient la valeur de la variable de session mais le tableau n'y est plus.
    Je dois donc cliquer manuellement pour faire apparaître mon tableau.
    Je voudrais juste simuler le clic sur le bouton.

    j'ai essayé avec onload mais ça ne marche pas.
    As-tu une autre solution ?

    Merci
    beegees

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu prends le probleme dans le mauvais sens : ta mise à jour sql pourrait se faire sur la page qui affiche les informations, ainsi pas besoin de redirection ou de retour arriere manuel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu prends le probleme dans le mauvais sens : ta mise à jour sql pourrait se faire sur la page qui affiche les informations, ainsi pas besoin de redirection ou de retour arriere manuel.
    Bonjour sabotage,

    Merci pour ta réponse rapide.

    Je suis entièrement d'accord avec toi, mais comment faire cela ? AJAX ?

    Je ne suis pas assez compétent pour cela....

    Aurais-tu un début de code ?

    Un tout grand merci à toi.

    beegees

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par jnore Voir le message
    Le javascript est coté client, la seule chose que tu puisse faire est de lancer un fonction sur un onload sur la page au niveau du body.
    Merci pour ta réponse qui me semble logique

    beegees

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne suis pas assez compétent pour cela....
    Sais-tu développer ton idée stp ?
    Vraiment rien de compliqué : dans ton formulaire de mise à jour tu mets par exemple un champ hidden name="action" value="update"
    En premiere etape de ta page, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_POST['action']) && $_POST['action']="update") {
    // code de traitement des update
    }
    // code du formulaire
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour Sabotage,

    Merci pour ta réponse.

    dans ton formulaire de mise à jour tu mets par exemple un champ hidden name="action" value="update"
    Voici le code de mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    echo '<form action="MettreAJour.php" method="post" name="frmSaisie" id="frmSaisie">';
     
     
    	echo '<tr>';
    	for($i=0;$i<mysql_num_fields($query);$i++)
    		{
    		echo '<th>'.mysql_field_name($query,$i).'</th>';
    		}
    	echo '</tr>';
     
    	$nligne = 0;
    	$nbColonnes = 0;
    	while($row = mysql_fetch_array($query,MYSQL_ASSOC)) 
    	{
     
    	echo '<tr>';
    	foreach($row as $NomCol => $Valeur)
    		{
    			   echo  '<td> <input type="checkbox" name="new[' . $nligne . '][' . $NomCol . ']" > </td>';
    			   echo '<td> <textarea name="new[' . $nligne . '][' . $NomCol . ']" . $>'.$Valeur.'</textarea> <input name="old[' . $nligne . '][' . $NomCol . ']" type="hidden"  value="'.$Valeur.'"/></td>';	
    		}
    	$nligne++;
    				echo '</tr>';
    	}
     
     
     
     
     
    	echo '<input type="submit" name="btnUpdate" value="Mettre la table à jour" onClick="UpdateSQL()" />' ; 
     
    	echo '</p>';
    	echo '</form>';
    Il contient déjà une action, dois-je la remplacer ?

    En premiere etape de ta page, tu fais
    [CODE]if (isset($_POST['action']) && $_POST['action']="update") {
    // code de traitement des update
    Dans le code de mise à jour alors ?

    Voici le code de mise à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php
    session_start();
    include('Scripts/connexion.php'); 
     
    $NbLignes = $_GET["nligne"];
     
    //echo '&NbLignes vaut '.$NbLignes;
     
    //var_dump($_POST);
     
    //echo $_SESSION['LaTable'];
     
    foreach ($_POST['new'] as $key=>$NomCol) {
     $sqlset = array();
     $sqlwhere = array();
     
     
     foreach ($_POST['new'][$key] AS $NomCol=>$value) 
     {
                  $sqlset[] = $NomCol . "= '" . $value ."' ";
     
                  $sqlwhere[] = $NomCol . "= '" . $_POST['old'][$key][$NomCol] . "' ";
      }
    $sql = 'UPDATE ' . $_SESSION['LaTable'] . ' SET ' . implode(",", $sqlset) . ' WHERE ' . implode(" AND ", $sqlwhere); 
     
    $execution=mysql_query($sql, $link)or die($query . " - " . mysql_error());
     
     
    }
    echo $sql;
    header("Location: EntreeDeDonnees.php"); 
    echo "<script>
    document.test.submit();
    
    </script>";
     
     
    ?>
    Ton idée me semble super, merci pour ton aide.

    beegees

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    non, le principe est d'avoir le formulaire qui pointe vers lui meme et donc le traitement de la mise à jour sur le meme fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    non, le principe est d'avoir le formulaire qui pointe vers lui meme et donc le traitement de la mise à jour sur le meme fichier.
    ok donc un simple include dans le fichier où se trouve le formulaire ?

    C'est une bonne idée.
    Sais-tu me montrer un début de code car j'hésite ?

    Voici mon début de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo '<form action="MettreAJour.php" method="post" name="frmSaisie" id="frmSaisie" <input type="hidden"  name="action"  value="update">
    >';
     
    	if (isset($_POST['action']) && $_POST['action']="update") 
    	{
    // code de traitement des update
    	include('../MettreAJour.php');
    	}
    Quand je clic sur le bouton "Mettre a jour", ça ne fonctionne pas.

    Est-ce que le hidden doit aussi référence le bouton "Mettre à jour" ?

    encore.

    beegees

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le "action" sert juste a reperer qu'on vient du formulaire validé et donc qu'on doit procéder aux mises a jour.
    Le formulaire ne pointe plus vers MettreAJour.php mais sur lui meme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (isset($_POST['action']) && $_POST['action']="update") 
    	{
    // code de traitement des update
    	include('../MettreAJour.php');
    	}
     
    echo '<form action="" method="post" name="frmSaisie" id="frmSaisie">
    <input type="hidden"  name="action"  value="update">
    >';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Merci à toi Sabotage,

    Mon problème est maintenant résolu.

    Encore un tout grand merci à toi.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lancer une commande dos avec un QProcess
    Par Madeline dans le forum Qt
    Réponses: 1
    Dernier message: 23/04/2009, 22h42
  2. Lancer une commande système avec des "
    Par Caro-Line dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 15h17
  3. lancer une commande unix avec perl
    Par dm_manu dans le forum Langage
    Réponses: 1
    Dernier message: 02/08/2006, 19h41
  4. lancer une commande système avec jbuilder
    Par xs_nady dans le forum JBuilder
    Réponses: 1
    Dernier message: 28/03/2006, 04h54
  5. Lancer une commande système avec VC++
    Par xs_nady dans le forum MFC
    Réponses: 1
    Dernier message: 17/03/2006, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo