Est-il possible d'ajouter un href contenant un identifiant à l'intérieur de la fonction runConfirm ? Mon objectif est qu'une fenêtre contextuelle s'affiche après avoir cliqué sur Accepter et que le bouton Accepter effectue la requête à partir d'isset.

Voici mon code pour accepter.

$displaybody .= "<tr>
<td>" . $rows['lname'] . ", " . $rows['fname'] . "</td>
 <td>" . $rows['subject'] . "</td>
 <td>" . $rows['days'] . " " . $rows['rstime'] . " - " . $rows['retime'] . " 
</td>
   <td>" . $rows['note'] . "</td>
  <td>
<a class='runConfirm' data-id='" . $rows['rid'] . "'>Accept</a>                
<a href='home.php?decline=" . $rows['rid'] . "'>Decline</a>
</td>
</tr>"

Et voici ma fonction pour le popup. (Mis à jour)

<script type='text/javascript'> 
        $(function(){
        $('.runConfirm').click(function(event){
          // get the id you want to act on
          var theId = $(this).data('rid');

          // ask user for confirmation
          alertify.confirm('Are you sure to accept this request?',

            // accepted
            function(){

              // go to the processing page
              window.location('/accept.php?rid=' + theId);
            },

            // declined
            function(){
              alertify.error('You clicked CANCEL');
          }).set('closable', false);

        });
        });
  </script>

Accept.php contenant le processus d'acceptation de la réservation.

    <?php
    include("server.php");
    session_start();

    if(isset($_GET['accept']))
    {
      $rid=$_GET['accept'];
            $query=$mysqli->query("SELECT qid FROM requests WHERE rid='".$rid."'");
                if($query->num_rows>0)
                {
                        while($rows=$query->fetch_assoc())
                        {
                            $qid=$rows['qid'];
                        }
            }

     $query1=$mysqli->query("UPDATE qualified SET status='accepted' WHERE 
   qid='".$qid."' ");
     $query=$mysqli->query("UPDATE requests SET action='accepted' WHERE 
   rid='".$rid."'");

     header("Location:home.php");
   }

   ?>
0
Princess Collins 17 févr. 2020 à 11:16

1 réponse

Meilleure réponse

Lors de la génération du DOM, vous pouvez ajouter un attribut de données au lien "Confirmer" auquel vous pouvez ensuite accéder à partir de votre fonction de rappel de clic runConfirm.

En supposant que l'identifiant que vous souhaitez utiliser soit dans $rows['rid'] cela donnerait : (montrant uniquement les parties modifiées pour plus de clarté)

Génération Dom

$displaybody .= "<tr>
  <td>" . $rows['lname'] . ", " . $rows['fname'] . "</td>
  <td>" . $rows['subject'] . "</td>
  <td>" . $rows['days'] . " " . $rows['rstime'] . " - " . $rows['retime'] . "</td>
  <td>" . $rows['note'] . "</td>
  <td>
    <a class='runConfirm' data-id='" . $rows['rid'] . "'>Accept</a>                
    <a href='home.php?decline=" . $rows['rid'] . "'>Decline</a>
  </td>
</tr>"

Gestion des popups (mis à jour)

$('.runConfirm').click(function(event){
  // get the id you want to act on
  var theId = $(this).data('id');

  // ask user for confirmation
  alertify.confirm('Are you sure to accept this request?',

    // accepted
    function(){

      // go to the processing page
      window.location = '/accept.php?rid=' + theId;
    },

    // declined
    function(){
      alertify.error('You clicked CANCEL');
  }).set('closable', false);

});

Et votre troisième extrait irait dans accept.php.

Votre code:

  1. Affichez votre table avec les identifiants de ligne comme attribut de données

  2. En cliquant sur "Accepter", invitez l'utilisateur à confirmer et envoyez-le à la page "accept.php".

  3. Exécutez le code post-process sur le serveur qui redirigera éventuellement l'utilisateur vers "home.php"

Vous pouvez en savoir plus sur les données jQuery dans la doc : https://api.jquery.com/data/< /a>

1
Moutah 17 févr. 2020 à 10:22