Le code n'accede pas a ce bouton php

andy1508 -  
 andy1508 -
Bonjour,

je travaille sur un form ou je demande de remplir un champs affiche les infos relatifs , puis demande une confirmation pour enregistrer voila la stucture du code

//(l 'entete+ connex )

//les champs

<input type="submit" name="ok" value="ok" /> </br> // bouton d ordre d affichage

<?php

if(isset($_POST["ok"]))
{
?>
<input type="submit" name="yes" value="yes" /> </br>
<?php
if(isset($_POST["yes"]))
{
traitement apres le click sur yes
}
}
?>

mais meme kan je clicke le traitement de "yes" ne s'execute pas mais il passe a la page definie dans "action" du form

17 réponses

  1. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Je comprend pas tout, lorsque l' utilisateur clique sur OK, tu veux que ca affiche un récapitulatif des informations qu' il a renseigné et qu' il les corfirme en cliquant sur YES ?
    0
    1. andy1508
       
      en fait en cliquant sur ok il affiche des information supplementaires ( des champs text que j ai pas inclu dans ce code ) puis il demande une autre confirmation avec un autre submit
      le premier OK c pour afficher , le YES pour confirmer , mais le yes ne marche pas
      0
  2. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Je pense que le problème vient du fait que l' action du YES est imbriquée dans le OK. Quand tu cliques sur YES, tout ce qui est après
    if(isset($_POST["ok"])) { 

    ne sera pas interprété puisque tu cliques sur YES et non sur OK
    0
    1. andy1508
       
      pouvez vous me proposer une solution pour arriver au resultat voulu ?
      0
  3. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Quelque chose comme ca
    if(isset($_POST["ok"])) 
    { 
    echo '<input type="submit" name="yes" value="yes" /> </br>';
    }
    if(isset($_POST["yes"])) 
    { 
    traitement apres le click sur yes 
    } 
    0
    1. andy1508
       
      rien n'a changee , il retourne au point de depart pourtant g rien precise sur method
      method=" "
      0
  4. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Qu' est ce que tu veux qu' il se passe quand tu cliques YES ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    tu peux nous mettre ton code en entier ?
    0
    1. andy1508
       
      c trop long le code
      en somme je vous explique l algo

      je rentre un id_user je clike sur ok
      si le user est trouve il m affiche son prenom et le bouton yes (yes va supprimer )
      si je clicke sur yes il est supprimee
      s'il trouve pas le user il maffiche un prompt

      c tres simple sauf que le bouton yes refuse de s'executer avec du php (genre onsubmit = //j'execute )
      mais avec javascript ca va
      sauf que j'arrive pas a inclure le traitement d'une requete en php dans la focntion javascript
      0
    2. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
       
      Je vais t' écrire un petit code en XMLHttpRequest ca deverait fonctionner
      0
    3. andy1508
       
      merci :)
      0
  7. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Donc tu vas devoir apporter quelques modifications à ton code
    -transformer ton bouton YES
    -ajouter une DIV

    echo '<input type="button" name="yes" value="yes" onclick="Deluser();" /></br>
    <div id="reponse"></div>';


    Entre les balises <head> et </head>
    tu mets:
    <script type="text/javascript">
    function Deluser(){
    var a_object = null;
    if(window.XMLHttpRequest){
    a_object = new XMLHttpRequest();
    }else if(window.ActiveXObject){
    a_object = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
    return;
    }
    a_object.open("POST","delete.php",true);
    a_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');

    a_object.onreadystatechange = function(){
    if(a_object.readyState==4){
    if(a_object.status==200){
    document.getElementById("reponse").innerHTML = a_object.responseText;

    }
    }
    }
    }
    </script>


    Ensuite tu crées une page delete.php
    tu récupères la variable utilisateur
    <?php
    $utilisateur= trim(str_replace("+"," plus ",$_POST['delete']));
    là avec la variable, tu fais ta requète pour supprimer l' utilisateur
    et tu affiches un message
    echo "$utilisateur a bien été supprimé";
    (Ca affichera le message dans le div réponse que l' on a mis sous le bouton YES

    Important
    Dans la fonction Deluser() on envoit une variable $utilisateur
    a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
    Il faut bien entendu que quand on clique sur YES la variable soit transmise
    0
    1. andy1508
       
      merciiiiiiiiiiiiiiiii je le test tt de suite !!
      0
    2. andy1508
       
      juste une chose $_POST['delete'] & $utilisateur renvoie a quoi ?

      parcke ma requete de suppression va utiliser le id deja defini dans le form
      0
    3. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
       
      a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
      Va envoyer a delete.php l' UserID
      A mon avis c est quand on clique sur OK la page se réactualise et c est là que tu dois récupérer l' UserID j' ai appeler la variable $utlisateur mais tu peux changer, le tout c est quelle contienne la valeur de l' UserID

      Ensuite sur la page delete.php
      $_POST['delete'] c est justement la valeur de l' UserID que l' on a envoyé avec la requete
      0
    4. andy1508
       
      je dois donc inclure a_object.send("delete=<? echo '.'$utilisateur.''; ?>"; dans deluser() ?
      0
    5. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
       
      Mince tout à l' heure j' ai coupé la ligne au lieu de la copier xD
      Je te redonne la fonction complete
      <script type="text/javascript"> 
      function Deluser(){ 
      var a_object = null; 
      if(window.XMLHttpRequest){ 
      a_object = new XMLHttpRequest(); 
      }else if(window.ActiveXObject){ 
      a_object = new ActiveXObject("Microsoft.XMLHTTP"); 
      }else{ 
      alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
       return; 
      } 
      a_object.open("POST","delete.php",true); 
      a_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
      a_object.send("delete=<? echo '.'$utilisateur.''; ?>";  
      a_object.onreadystatechange = function(){ 
      if(a_object.readyState==4){ 
      if(a_object.status==200){ 
      document.getElementById("reponse").innerHTML = a_object.responseText; 
      
      } 
      } 
      } 
      } 
      </script> 
      0
  8. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Clique sur ton premier bouton "OK" ensuite tu regardes le code source de la page pour voir si la variable $utilisateur est bien renseignée
    tu deverais voir
    a_object.send("delete=user_48");

    Ps; je viens de voir que j' ai pas fermé la parenthèse
    a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
    a_object.send("delete=<? echo '.'$utilisateur.''; ?>");
    0
    1. andy1508
       
      non ca n'affiche tjrs rien :)
      j'ai tjrs a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
      dans le code source
      0
  9. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Voici la ligne correcte; je viens de la tester
    a_object.send("delete=<?php echo ''.$utilisateur.''; ?>");
    0
  10. andy1508
     
    voila un peu la vrai application , bon j ai parler de suppression mais c est just un exemple pour faire des test mais la vrai application se trouve ici

    fichier emprunt

    <?php //connection base donnee

    $db = mysql_connect('localhost', 'root' );
    mysql_select_db('mediatheque',$db);
    ?>

    <HEAD>
    <script type="text/javascript">
    function Deluser(){
    var a_object = null;
    if(window.XMLHttpRequest){
    a_object = new XMLHttpRequest();
    }else if(window.ActiveXObject){
    a_object = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
    return;
    }
    a_object.open("POST","emprunter.php",true);
    a_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
    a_object.send("emprunter=<?php echo ''.$advt.''; ?>");
    a_object.send("emprunter=<?php echo ''.$ext.''; ?>");
    a_object.onreadystatechange = function(){
    if(a_object.readyState==4){
    if(a_object.status==200){
    document.getElementById("reponse").innerHTML = a_object.responseText;

    }
    }
    }
    }
    </script>
    </HEAD>

    <form method="post" > <!-- Form AJout -->

    <fieldset>
    <legend>Nouvel emprunt</legend> <!-- Titre du cadre -->

    <label >Adherent</label><br />
    <input type="text" name="adhe" /><br />

    <label >Exemplaire</label><br />
    <input type="text" name="exemp" /><br />

    <input type="submit" name="ok" value="Emprunter"/> </br> <!-- Ordre affichage ! -->

    <?php

    if(isset($_POST["ok"]))
    {

    if(isset($_POST["adhe"]))
    {
    $advt = $_POST['adhe'];
    $ext = $_POST['exemp'];

    $rq1="SELECT ID_DOC FROM EXEMPLAIRE WHERE ID_EXEMPLAIRE='$ext'";
    $rqv = mysql_query($rq1)or die("<script>alert('Operation impossible !')</script>");
    $rqe= mysql_fetch_array($rqv);
    $doc=$rqe['ID_DOC'];
    echo $doc;echo "</br>";

    ?>

    <label >Document</label><br />
    <input type="text" name="doc" value="<?php echo $doc; ?>" /><br />

    <?php

    echo '<input type="button" name="yes" value="yes" onclick="Deluser();" /></br><div id="reponse"></div>';

    }

    ?>

    </fieldset>
    </form>

    //le fichier emprunter

    <?php
    //$advt= trim(str_replace("+"," plus ",$_POST['emprunter']));
    //$extt= trim(str_replace("+"," plus ",$_POST['emprunter']));
    $rq4 = "UPDATE EXEMPLAIRE SET ID_ADHERENT = '$advt' WHERE ID_EXEMPLAIRE = '$ext';";
    $rqv4 = mysql_query($rq4)or die("<script>alert('Emprunt Impossible !')</script>");
    if($rqv4)
    {
    echo "<script>alert('Emprunt enregistre ! ')</script>";
    echo "</br>";
    }

    ?>

    ici tous marche a 100% mais le probleme c faire la liaison entre la requete d'update et le bouton yes

    parceke kan je clike sur yes rien ne se passe
    0
  11. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Pour envoyer plusieurs variables dans
    a_object.send("emprunter=<?php echo ''.$advt.''; ?>");
    faut faire

    a_object.send("emprunter=<?php echo ''.$advt.''; ?>&variable2=<?php echo ''.$var2.''; ?>");
    0
  12. cascroute13 Messages postés 1628 Statut Membre 389
     
    Essaye avec $_POST['yes'] au lieu de $_POST["yes"]
    0
    1. andy1508
       
      ca revient au meme :)
      0
    2. cascroute13 Messages postés 1628 Statut Membre 389
       
      Très bizarre !
      0
  13. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Tu avances un peu ou tu bloques toujours ?
    0
    1. andy1508
       
      a vrai dire j ai pas trop le choix puiske deja je sais pas d'ou viens lerreur

      j ai essaye de la faire avec du javascript a travers un prompt de confirmation( oui/non ) (donc sans le yes )
      mais je sais pas comment recuperer le oui du prompt pour executer la requete en cas de "oui"

      c est a dire executer la requete ou pas en fonction du confirm
      0
  14. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    Ca envoit bien les variables à emprunt.php ?
    0
    1. andy1508
       
      voila dans le code source

      a_object.send("emprunter=<br />
      <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>


      donc je presume que c nn ?
      0
    2. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
       
      Bah ca envoit quelque chose c est bon signe xD, c est les variables qui sont mals renseignées
      0
    3. andy1508
       
      g deja verifier les variable avec des echo mais la je sens que j ai mis une betise quelque part


      a_object.send("emprunter=<?php echo ''.$advt.''; ?>&variable2=<?php echo ''.$ext.''; ?>");
      //je suis sur emprunt.php

      et quand je passe a emprunter.php
      c

      <?php
      $advt= trim(str_replace("+"," plus ",$_POST['emprunter'])); (ou emprunt ???)
      $extt= trim(str_replace("+"," plus ",$_POST['emprunter']));

      //requete

      ?>
      0
  15. CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
     
    variable2 correspond à $ext
    donc dans emprunt.php tu la récupères
    $ext= trim(str_replace("+"," plus ",$_POST['variable2']));
    0
  16. andy1508
     
    sinn ya une indication : stocker le OK dans un champs hidden ou encore l utiliser dans une session

    si j'opte pour le hidden ou doit je mettre ce champs , c a dire aprs quelle condition ??
    0