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 :

[Système] Problème fonction isset


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut [Système] Problème fonction isset
    Bonjour,

    Je cherche à executer un code lors de l'appuie sur un bouton...
    J'ai essayé avec un if(isset(nom de mon bouton))
    Mais ca ne marche pas...

    Quelqu'un pourrait me donner un coup de main.
    Voici mon code
    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
     
    <?
    if(isset($validation_modi))
    {
    $ctrl=sizeof($modi);
    $montant_total=0;
    if($ctrl==0)
    {
    echo"Vous n'avez pas coché de case!!";
    }
    else
    {
    foreach ($modi as $valeur)
    {
    $requete3=mysql_db_query("$sql_bdd","SELECT * FROM orders2 WHERE id=$valeur",$db_link);
    $ref=mysql_result($requete3,0,"ref");
    $nom_produit=mysql_result($requete3,0,"produit");
    $prix_produit=mysql_result($requete3,0,"prix");
    $qte_produit=mysql_result($requete3,0,"qte");
    $couleur_produit=mysql_result($requete3,0,"couleur");
    $taille_produit=mysql_result($requete3,0,"taille");
    $query="INSERT INTO avoir2 VALUES('','$num_new','$ref','$nom_produit','$prix_produit','$qte_produit','$couleur_produit','$taille_produit')";
    mysql_query($query) or die('FatalError: Handle Exception Not Found during INSERT avoir2 ' . mysql_error());
    $montant_total=$montant_total+($prix_produit*$qte_produit);
    }
    $query2="UPDATE avoir SET montant_total='$montant_total' AND montant_restant='$montant_total' WHERE num_avoir='$num_new'";
    mysql_query($query2) or die('FatalError: Handle Exception Not Found during UPDATE avoir' . mysql_error());
    }
    }
    ?>
    <input type="button" onclick="MM_goToURL('parent.frames[\'main3\']','?cat=5&amp;q=5');return document.MM_returnValue" name="validation_modi">

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    En fait j'ai l'impression qu'il execute le onclick de l'input type button avant le isset, et donc je passe sur l'autre page avant qu'il puisse executer le isset...
    Mais je ne suis pas sur.
    Quelqu'un aurait une solution pour mon problème..

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 133
    Par défaut
    bonjour

    ton formulaire renvoie sur quoi? la meme page?
    donne nous plus d'infos sur ton formulaire html

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Justement, je n'utilise pas de formulaire, et le onclick renvoi sur une autre page.
    En gros cette la page cournate est la page 53 et quand on clique sur le bouton on arrive sur la page 5. Mais le code du isset ne s'exécute pas. Je voudrais que le code qui est dans mon isset s'execute avant de changer de page...

  5. #5
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Lors de ton click sur le bouton le navigateur effectuera l'action déterminée par la balise onclick, il n'y a aucun moyen de faire exécuter du code php sur un click de bouton sans appeler une autre page ou rafraichir la page courante.

    Le php est un langage interprêté par le serveur et non par le client.

    De plus tester l'existence d'un bouton en php je sais pas si c'est trop possible.

    La seule chose à faire dans ton cas est de mettre un champ caché à true(par ex) lorsque tu cliques sur le bouton, de valider ton formulaire et ensuite de récupérer ton champ caché avec $_POST et de vérifier si il est à true
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  6. #6
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    on peut tester l'existence d'un bouton en php, mais ca necessite un formulaire, car c'est le formulaire qui détermine la source de la donnée (POST ou GET)

    si tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form name="machin" method="POST" ...>
    <input type="submit" name="truc" value="chose">
    <input type="submit" name="bidule" value="chouette">
    </form>
    et que tu clic sur "chose", tu aura $_POST['truc']==="chose"
    si tu clic sur "chouette", tu aura $_POST['bidule']==="chouette"

    il me semble meme que $_POST['machin'] est défini, mais je ne me souvient plus de sa valeur.

    Tu peux aussi avoir les memes "name" sur tes boutons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form name="machin" method="POST" ...>
    <input type="submit" name="truc" value="chose">
    <input type="submit" name="truc" value="chouette">
    </form>
    et dans ce cas là, $_POST['truc'] vaudra soit "chose", soit "chouette" en fonction du bouton cliqué

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Voici mon code complet. Je n'arrive pas à m'en sortir, je ne trouve pas le moyen de valider mon formulaire en fonction des checkbox selectionnées...
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    <?
    <script type="text/JavaScript">
    function MM_jumpMenu(targ,selObj,restore){ //v3.0
      eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
      if (restore) selObj.selectedIndex=0;
    }
     
    function MM_goToURL() { //v3.0
      var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
    }
    </script>
    <form name="goOrder<? echo"$i"; ?>" action="" enctype="multipart/form-data" method="post">
    <table width="1000" border="0">
    ...
      	<?
    	$db_link = mysql_connect("$sql_serveur","$sql_user","$sql_passwd");
     
    	$requete=mysql_db_query("$sql_bdd","SELECT * FROM orders WHERE plus=$facture",$db_link);
    	$num=mysql_num_rows($requete);	
     
    	$numero_client=mysql_result($requete,0,"client");
    	$date_creation=date("d/m/Y");
     
    	// ON RECHERCHE L'ID MAXIMUM DE LA TABLE
     
    	$req=mysql_db_query($sql_bdd,"select max(num_avoir) from avoir ORDER BY num_avoir DESC",$db_link) or die(mysql_error());
    	$num_max=mysql_result($req,0,"max(num_avoir)");
    	$num_new=$num_max+1;
     
    	$query=mysql_db_query($sql_bdd,"insert into avoir values ('$num_new','$facture','$numero_client','$date_creation','0','','$commentaire','')",$db_link) or die(mysql_error());
     
    $i=0;
    while($i<$num)
    {
    	$commande=mysql_result($requete,$i,"commande");
    	$requete2=mysql_db_query("$sql_bdd","SELECT * FROM orders2 WHERE commande=$commande",$db_link);
    	$num2=mysql_num_rows($requete2);
    	$j=0;
    	while($j<$num2)
    	{
    		$idprod=mysql_result($requete2,$j,"id");
    		$ref=mysql_result($requete2,$j,"ref");
    		$nom_produit=mysql_result($requete2,$j,"produit");
    		$prix_produit=mysql_result($requete2,$j,"prix");
    		$qte_produit=mysql_result($requete2,$j,"qte");
    		$couleur_produit=mysql_result($requete2,$j,"couleur");
    		$taille_produit=mysql_result($requete2,$j,"taille");
    		?>
    		<tr class=Style2 bgcolor=#<? if ($j % 2 == 0) echo "FFFFFF"; else echo "F6F6F6"; ?>>
    			<td width=100><? echo"$facture"; ?></td>
    			<td width=100><? echo"$ref"; ?></td>
    			<td width=280><? echo"$nom_produit"; ?></td>
            		<td width=100><? echo"$couleur_produit"; ?></td>
            		<td width=100><? echo"$taille_produit"; ?></td>
            		<td width=80><? echo"$prix_produit €"; ?></td>
    			<td width=30><? echo"$qte_produit"; ?></td>
    			<td width=30><input type="checkbox" name="modi[]" value="<?echo"$idprod";?>"></td>
            	</tr>
    		<?
    		$j++;
    	}
    	$i++;
    }
    ?>
    <tr>
     <td width="589" class="Style2">
    <label>
    <?
    if(isset($validation_modi))
    {
    	$ctrl=sizeof($modi);
    	$montant_total=0;
    	if($ctrl==0)
    	{
    		echo"Vous n'avez pas coché de case!!";
    	}
    	else
    	{
    		foreach ($modi as $valeur)
    		{
    			$requete3=mysql_db_query("$sql_bdd","SELECT * FROM orders2 WHERE id=$valeur",$db_link);
    			$ref=mysql_result($requete3,0,"ref");
    			$nom_produit=mysql_result($requete3,0,"produit");
    			$prix_produit=mysql_result($requete3,0,"prix");
    			$qte_produit=mysql_result($requete3,0,"qte");
        		       $couleur_produit=mysql_result($requete3,0,"couleur");
    			$taille_produit=mysql_result($requete3,0,"taille");
     
    		$query="INSERT INTO avoir2 VALUES('','$num_new','$ref','$nom_produit','$prix_produit','$qte_produit','$couleur_produit','$taille_produit')";
    		mysql_query($query) or die('FatalError: Handle Exception Not Found during INSERT avoir2 ' . mysql_error());
    		$montant_total=$montant_total+($prix_produit*$qte_produit);
    	}
    	$query2="UPDATE avoir SET montant_total='$montant_total' AND montant_restant='$montant_total' WHERE num_avoir='$num_new'";
    	mysql_query($query2) or die('FatalError: Handle Exception Not Found during UPDATE avoir' . mysql_error());
    }
    }
    ?>
    <input name="cat" type="hidden" id="cat" value="5">
    <input name="q" type="hidden" id="q" value="5">
    <input type="submit" value="Valider" name="validation_modi">
    </label>
    </td>
    </tr>
    </table>
    <?
    // DECONNEXION DE LA BASE DE DONNEE
    mysql_close($db_link);
    ?>
    </form>
    Please Help

Discussions similaires

  1. [Système] problème fonction et question
    Par schats dans le forum Langage
    Réponses: 10
    Dernier message: 02/06/2007, 14h14
  2. Problème fonction isset
    Par tazmania dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2007, 20h09
  3. [Système] Probléme fonction exec
    Par locs dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2006, 15h57
  4. Réponses: 3
    Dernier message: 10/08/2006, 20h04
  5. [Système] problème fonction header
    Par Pfeffer dans le forum Langage
    Réponses: 1
    Dernier message: 21/06/2006, 11h16

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