J'essaie de mettre à jour une table en utilisant des variables que j'ai créées sur mon JavaScript. J'essaie d'utiliser ajax pour envoyer les informations. Pour une raison quelconque, chaque fois que j'exécute le code, le tableau est mis à jour avec du blanc et non avec les VARIABLES que j'ai créées sur JavaScript. Des idées sur ce qui pourrait en être la cause?

PHP:

$stmt = $conn->prepare("UPDATE seats SET firstClass=? , economicClass=? WHERE 1");
$stmt->bind_param("ss", $first, $eco);
$eco = $_POST["eco"];
$first = $_POST["first"];

JAVASCRIPT / AJAX:

var seatsInEconomicClass = 0;
var seatsInFirstClass = 0;
function ajaxWay() {
        $.post("reservePhp.php", 
        { 
            data : {eco:"seatsInEconomicClass",first:"seatsInFirstClass"}
        }, display);
    }
-1
Rene Roger 9 août 2016 à 07:46

4 réponses

Meilleure réponse

Vous êtes proche:

var seatsInEconomicClass = 0;
var seatsInFirstClass = 0;
function ajaxWay() {
        $.post("reservePhp.php", { eco: seatsInEconomicClass, first: seatsInFirstClass}).done(function(data){
            //code to run after the ajax call
        });
    }

Depuis API jQuery

 $.post( "test.php", { name: "John", time: "2pm" })
  .done(function( data ) {
    alert( "Data Loaded: " + data );
  });

Ici "John" et "2pm" sont des valeurs réelles. tandis que dans votre code, vous utilisez des variables. si vous les mettez dans quotes, ils seront traités comme des chaînes eux-mêmes et leur valeur n'atteindra pas php. ce qui va arriver est le nom de ces variables sous forme de chaînes.

1
Mridul Kashyap 9 août 2016 à 05:19

Dans votre code PHP, changez l'ordre de ces lignes.

$stmt = $conn->prepare("UPDATE seats SET firstClass=? , economicClass=? WHERE 1");

$eco = $_POST["eco"];
$first = $_POST["first"];
$stmt->bind_param("ss", $first, $eco);

Vous devez d'abord les initialiser puis les lier comme mentionné dans le commentaire de @Thamilan

0
sinsuren 9 août 2016 à 05:03
you have need to add a get or  post method for this ajax call

Vous pouvez l'utiliser

var seatsInEconomicClass = 0;
var seatsInFirstClass = 0;
        $.ajax({
            type:"post",
            url:"reservePhp.php",
            data:{"seatsInEconomicClass": seatsInEconomicClass,"seatsInFirstClass": seatsInFirstClass},
            success: function(response){ 
            alert(response);
            }
        });

Vous pouvez accéder à ces variables sur Php.php de réserve avec

<?php
$seatsInEconomicClass = $_POST['seatsInEconomicClass'];
$seatsInFirstClass = $_POST['seatsInFirstClass'];

?>
0
sinsuren 9 août 2016 à 05:38

Vous pouvez utiliser jquery AJAX comme suit et passer plusieurs paramètres comme suit:

$.post('reservePhp.php',{param1:value,param2:value,...},function(data){
  //data contains the response on which you can perform any type of action on the html page
});
1
PHP Geek 9 août 2016 à 04:48