skip to Main Content

I have a problem with ajax, when I call it, i get the undefined index error on my variables.
I have other ajax call on all my website, and no problem, but this one give me an error.
I search in my code and I don’t see where my mistake is :(.

Here is my HTML :

<script type="text/javascript">

  $('#btnDispo').click(function()
  {
    var service = document.getElementById("serviceTest").value;
    var date = document.getElementById("DateReservation").value;
    var heure = document.getElementById("heureTest").value;
    if( service && date && heure)
    {
        $.ajax({
        type:"POST",
        url: "check-table.php",
        dataType: "json",
        data: 
        {
          service: service, date: date, heure: heure
        },
        success: function(output_string)
        {
          $("#result_table").html(output_string);
        } // End of success function of ajax form
        }); // End of ajax call 
    }
    else
    {
        alert("c'est pas rempli");
    }
  });
</script>

and this is my check-table.php :

<?php
    //DB Connection
    include("connection.php"); 

    $service = isset($_REQUEST['service']) ? $_REQUEST['service'] : 'serviceBug' ;
    $date = isset($_REQUEST['date']) ? $_REQUEST['date'] : 'dateBug' ;
    $heure = isset($_REQUEST['heure']) ? $_REQUEST['heure'] : 'heureBug' ;
    $output_string = "Service = " . $service . " et date = " . $date . " et heure = " . $heure; 
/*
    $tableDispo = "SELECT numTable FROM tbltable WHERE NOT EXISTS (SELECT * FROM tblreservation WHERE tblreservation";
    $tableDispo .=".idTable = tbltable.idTblTable and tblreservation.serviceReservation = '".$service."' and tblreservation.dateReservation = '".$date."' )";
    $result = mysqli_query($con, $tableDispo);

    $output_string = "";
    $output_string .=  "<table border='1'>n";
    while($row = mysqli_fetch_assoc($result))
    {
        foreach($row as $value)
        {
            $id = $row['numTable'];
            $output_string .= "<img width='";
            $output_string .= "90%' src='";
            $output_string .= "../Images/Table";
            $output_string .= $id;
            $output_string .= ".png'>n";
        }
        $output_string .= "</tr>n";
    }
    $output_string .= "</table>n";

    //mysql_close();
    // This echo for jquery */
    echo json_encode($output_string);
?>

I have the same in an another page, who works perfectly :
html :

  <script type="text/javascript" language="javascript">

  $('#btnFiltre').click(function()
  {
    var service = document.getElementById("serviceTest").value;
    var date = document.getElementById("DateReservation").value;
    var heure = document.getElementById("heureTest").value;
    $.ajax({
      url: "check-gestionTable.php",
      type:'POST',
      dataType: 'json',
      data: 
      {
        service: service, date: date, heure: heure
      },
      success: function(output_string)
      {
        $("#result_table").html(output_string);
      } // End of success function of ajax form
    }); // End of ajax call 
  });
</script>

check-gestionTable.php :

<?php
   //DB Connection
   include("connection.php"); 

   $service = $_POST['service'];
   $date = $_POST['date'];
   $heure = $_POST['heure'];


   if($date)//Si la date n'est pas null
   {
        if ($service != "Tout")//Si le service n'est pas null
        {
            if($heure != "Toutes")// Si heure n'est pas null
            {
                $tableDispo = "SELECT idTblReservation as Numero_de_reservation, nombreClient as Couvert, dateReservation as Date_, serviceReservation as Service, heure as Heure, idTable as Numero_de_table FROM tblreservation where serviceReservation = '".$service."' AND dateReservation = '".$date."' AND heure = '".$heure."' ";
                $result = mysqli_query($con, $tableDispo);
                $header = false;
                $output_string = "";
                $output_string .=  "<table class='titreRes' id='titreRes' style='border: 10px ridge grey; margin-left: 25%; margin-right: 35%; width: 50%; background-color: lightgrey; font-family: Cooper;'>n";
                while($row = mysqli_fetch_assoc($result))
                {
                    if(!$header)
                    {
                        $output_string .= "<tr>n";
                        foreach($row as $header => $value)
                        {
                            $output_string .= "<th style='text-align:center'>{$header}</th>n";
                        }
                        $output_string .= "<th style='text-align:center'>Supprimer ? </th>";
                        $output_string .= "</tr>n";
                    }
                    $output_string .= "<tr>n";
                    foreach($row as $value)
                    {
                        $output_string .= "<th style='text-align:center'>{$value}</th>n";
                    }
                    $id = $row['Numero_de_reservation'];
                    $output_string .= "<th style='text-align:center'><a href='delete.php?id=";
                    $output_string .= $id;
                    $output_string .= "'>Supprimer</a></th>";
                    $output_string .= "</tr>n";
                }
                $output_string .= "</table>n";

                // This echo for jquery 
                echo json_encode($output_string);
            }
            else if ($heure == "Toutes")
            {
                $serviceDateTable = "SELECT idTblReservation as Numero_de_reservation, nombreClient as Couvert, dateReservation as Date_, serviceReservation as Service, heure as Heure, idTable as Numero_de_table FROM tblreservation where serviceReservation = '".$service."' AND dateReservation = '".$date."' ORDER BY heure ASC";
                $result = mysqli_query($con, $serviceDateTable);
                $header = false;
                $output_string = "";
                $output_string .=  "<table class='titreRes' id='titreRes' style='border: 10px ridge grey; margin-left: 25%; margin-right: 35%; width: 50%; background-color: lightgrey; font-family: Cooper;'>n";
                while($row = mysqli_fetch_assoc($result))
                {
                    if(!$header)
                    {
                        $output_string .= "<tr>n";
                        foreach($row as $header => $value)
                        {
                            $output_string .= "<th style='text-align:center'>{$header}</th>n";
                        }
                        $output_string .= "<th style='text-align:center'>Supprimer ? </th>";
                        $output_string .= "</tr>n";
                    }
                    $output_string .= "<tr>n";
                    foreach($row as $value)
                    {
                        $output_string .= "<th style='text-align:center'>{$value}</th>n";
                    }
                    $id = $row['Numero_de_reservation'];
                    $output_string .= "<th style='text-align:center'><a href='delete.php?id=";
                    $output_string .= $id;
                    $output_string .= "'>Supprimer</a></th>";
                    $output_string .= "</tr>n";
                }
                $output_string .= "</table>n";

                // This echo for jquery 
                echo json_encode($output_string);
            }
        }
        else if ($service == "Tout")
        {
            $dateTable = "SELECT idTblReservation as Numero_de_reservation, nombreClient as Couvert, dateReservation as Date_, serviceReservation as Service, heure as Heure, idTable as Numero_de_table FROM tblreservation where dateReservation = '".$date."' ORDER BY serviceReservation ASC, heure ASC";
            $result = mysqli_query($con, $dateTable);
            $header = false;
            $output_string = "";
            $output_string .=  "<table class='titreRes' id='titreRes' style='border: 10px ridge grey; margin-left: 25%; margin-right: 35%; width: 50%; background-color: lightgrey; font-family: Cooper;'>n";
            while($row = mysqli_fetch_assoc($result))
            {
                if(!$header)
                {
                    $output_string .= "<tr>n";
                    foreach($row as $header => $value)
                    {
                        $output_string .= "<th style='text-align:center'>{$header}</th>n";
                    }
                    $output_string .= "<th style='text-align:center'>Supprimer ? </th>";
                    $output_string .= "</tr>n";
                }
                $output_string .= "<tr>n";
                foreach($row as $value)
                {
                    $output_string .= "<th style='text-align:center'>{$value}</th>n";
                }
                $id = $row['Numero_de_reservation'];
                $output_string .= "<th style='text-align:center'><a href='delete.php?id=";
                $output_string .= $id;
                $output_string .= "'>Supprimer</a></th>";
                $output_string .= "</tr>n";
            }
            $output_string .= "</table>n";

            // This echo for jquery 
            echo json_encode($output_string);
        }
   }
   else
   {
        if ($service != "Tout")//Si le service n'est pas null
        {
            if($heure != "Toutes")// Si heure n'est pas null
            {
                $serviceHeureTable = "SELECT idTblReservation as Numero_de_reservation, nombreClient as Couvert, dateReservation as Date_, serviceReservation as Service, heure as Heure, idTable as Numero_de_table FROM tblreservation where serviceReservation = '".$service."' AND heure = '".$heure."' ORDER BY dateReservation ASC";
                $result = mysqli_query($con, $serviceHeureTable);
                $header = false;
                $output_string = "";
                $output_string .=  "<table class='titreRes' id='titreRes' style='border: 10px ridge grey; margin-left: 25%; margin-right: 35%; width: 50%; background-color: lightgrey; font-family: Cooper;'>n";
                while($row = mysqli_fetch_assoc($result))
                {
                    if(!$header)
                    {
                        $output_string .= "<tr>n";
                        foreach($row as $header => $value)
                        {
                            $output_string .= "<th style='text-align:center'>{$header}</th>n";
                        }
                        $output_string .= "<th style='text-align:center'>Supprimer ? </th>";
                        $output_string .= "</tr>n";
                    }
                    $output_string .= "<tr>n";
                    foreach($row as $value)
                    {
                        $output_string .= "<th style='text-align:center'>{$value}</th>n";
                    }
                    $id = $row['Numero_de_reservation'];
                    $output_string .= "<th style='text-align:center'><a href='delete.php?id=";
                    $output_string .= $id;
                    $output_string .= "'>Supprimer</a></th>";
                    $output_string .= "</tr>n";
                }
                $output_string .= "</table>n";

                // This echo for jquery 
                echo json_encode($output_string);
            }
            else if ($heure == "Toutes")
            {
                $serviceTable = "SELECT idTblReservation as Numero_de_reservation, nombreClient as Couvert, dateReservation as Date_, serviceReservation as Service, heure as Heure, idTable as Numero_de_table FROM tblreservation where serviceReservation = '".$service."' ORDER BY dateReservation ASC, heure ASC";
                $result = mysqli_query($con, $serviceTable);
                $header = false;
                $output_string = "";
                $output_string .=  "<table class='titreRes' id='titreRes' style='border: 10px ridge grey; margin-left: 25%; margin-right: 35%; width: 50%; background-color: lightgrey; font-family: Cooper;'>n";
                while($row = mysqli_fetch_assoc($result))
                {
                    if(!$header)
                    {
                        $output_string .= "<tr>n";
                        foreach($row as $header => $value)
                        {
                            $output_string .= "<th style='text-align:center'>{$header}</th>n";
                        }
                        $output_string .= "<th style='text-align:center'>Supprimer ? </th>";
                        $output_string .= "</tr>n";
                    }
                    $output_string .= "<tr>n";
                    foreach($row as $value)
                    {
                        $output_string .= "<th style='text-align:center'>{$value}</th>n";
                    }
                    $id = $row['Numero_de_reservation'];
                    $output_string .= "<th style='text-align:center'><a href='delete.php?id=";
                    $output_string .= $id;
                    $output_string .= "'>Supprimer</a></th>";
                    $output_string .= "</tr>n";
                }
                $output_string .= "</table>n";


                // This echo for jquery 
                echo json_encode($output_string);
            }
        }
        else if ($service == "Tout" && $heure == "Toutes") //Si tout est null
        {
            $touteTable = "SELECT idTblReservation as Numero_de_reservation, nombreClient as Couvert, dateReservation as Date_, serviceReservation as Service, heure as Heure, idTable as Numero_de_table FROM tblreservation";
            $result = mysqli_query($con, $touteTable);
            $header = false;
            $output_string = "";
            $output_string .=  "<table class='titreRes' id='titreRes' style='border: 10px ridge grey; margin-left: 25%; margin-right: 35%; width: 50%; background-color: lightgrey; font-family: Cooper;'>n";
            while($row = mysqli_fetch_assoc($result))
            {
                if(!$header)
                {
                    $output_string .= "<tr>n";
                    foreach($row as $header => $value)
                    {
                        $output_string .= "<th style='text-align:center'>{$header}</th>n";
                    }
                    $output_string .= "<th style='text-align:center'>Supprimer ? </th>";
                    $output_string .= "</tr>n";
                }
                $output_string .= "<tr>n";
                foreach($row as $value)
                {
                    $output_string .= "<th style='text-align:center'>{$value}</th>n";
                }
                $id = $row['Numero_de_reservation'];
                $output_string .= "<th style='text-align:center'><a href='delete.php?id=";
                $output_string .= $id;
                $output_string .= "'>Supprimer</a></th>";
                $output_string .= "</tr>n";
            }
            $output_string .= "</table>n";

            // This echo for jquery 
            echo json_encode($output_string);
        }
   }

?>

The problem doesn’t even is in my php code, just the data don’t go from my html to my php.
Thank you everyone !

2

Answers


  1. Chosen as BEST ANSWER

    When making an Ajax call, which doesn't post if success, just check that the button that calls ajax, isn't in a form tag.


  2. Since a $_REQUEST var isn’t being generated, my best guess is that your two HTML pages are using two different versions of jQuery. If that’s the case, you need the new one to use ‘method: "POST"’, not type:. Either way, look into capturing the xhr data from jQuery’s site and log it to the console.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search