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

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    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 actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    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 régulier
    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
    Points : 101
    Points
    101
    Par défaut
    bonjour

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

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    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 expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    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 expérimenté

    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
    Points : 1 565
    Points
    1 565
    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 actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Une petite épuration de ton code pour ne nous montrer QUE les zones importantes ça serait pas mal (du genre virer les styles css, les sauts de ligne ainsi que les lignes uniquement html)
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    c fait... c mieu comme ca?...

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Oui c'est déjà mieux merci pour nous

    Déjà peut être tout simplement écrit Tu n'as pas lu les réponses de fladnag et de moi même tu continues à ne pas utiliser $_POST pour récupérer les valeurs de ton formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="checkbox" name="ma_cb"
    $valeur_cb = $_POST['ma_cb']
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Si ca peut aider, la page d'avant est un formulaire ou l'utilisateur saisi le numéro de facture et un commentaire, donc ces deux variables($facture et $commentaire) sont transmises par la page d'avant car elles me permettent de faire mes requetes d'affichage des produits presents dans la facture...

    Car le principe est que l'utilisateur choisit une facture a transformer en avoir. Dans cette page j'affiche tous les produits qui sont associés à cette facture, avec une checkbox a côté de chaque produit.
    L'utilisateur selectionne les produits que le client a retourné(produits a transformer en avoir), et la je voudrais inserer dans ma table avoir2 une ligne par produit(son nom, sa ref, son prix...) et en meme temps faire un update de avoir pour inscrire la somme de ces produits dans le champs montant de l'avoir...

    Je sais pas si ca peut aider à la compréhension de mon code, mais si vous voulez d'autres infos, je suis à disposition...

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Tu n'as pas lu les réponses de fladnag et de moi même tu continues à ne pas utiliser $_POST pour récupérer les valeurs de ton formulaire
    Je ne veux pas rester sur la meme page, cette page est la page 53, et lors de la validation du formulaire, je retourne sur la page5... C'est pour ca que je n'utilise pas $_POST

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Je séche désolé, si tu ne veux/peux pas passer des variables par POST entre tes 2 pages il te reste la solution d'utiliser des sessions.
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

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