Update[ ] depuis ajax en php sur MySQL

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous !

J'avoue que je n'ai jamais été confronté à ce problème, mais j'essaie de mettre à jour ma table avec l’événement OnClick.
Le soucis que je rencontre est que la mise à jour n'est pas faite. Pouvez-vous m'aider svp ?
<input type="number"
name="Fr_Quantite[<?php echo $i;?>]" <?php echo $JS_NUMERIC; ?> 
id="Fr_Quantite_<?php echo $i;?>" 
value="<?php echo $data["Quantite"]; ?>" 
onClick="saveChanges(this);" >

<script type="text/javascript">
function saveChanges(object){   
    $.ajax({
        url: '_shop-upp.php',
        data: 'content=' + object.value,
        cache: false,
        error: function(e){
            alert(e);
        },
        success: function(response){
            // A response to say if it's updated or not
            alert(response);
        }
    });   
}
</script>


_shop-upp.php
$arr_id = !empty($_GET['Fr_NumId']) ? $_GET['Fr_NumId'] : array();
$arr_Libelle = !empty($_GET['Fr_Libelle']) ? $_GET['Fr_Libelle'] : array();
$arr_Quantite = !empty($_GET['Fr_Quantite']) ? $_GET['Fr_Quantite'] : array();
$arr_Prix_Unitaire = !empty($_GET['Fr_Prix_Unitaire']) ? $_GET['Fr_Prix_Unitaire'] : array();
$arr_Remise = !empty($_GET['Fr_Remise']) ? $_GET['Fr_Remise'] : array();

try{
$Fact_BC = $pdo->prepare("UPDATE tb_shop_BC SET Libelle_TAG=:arr_Libelle, Quantite=:arr_Quantite, Prix_Unitaire=:arr_Prix_Unitaire, Remise=:arr_Remise WHERE NumId=:Fr_NumId");
foreach($arr_Libelle as $key => $value){
if($arr_Quantite[$key] <> 0){
$Fact_BC->bindParam(":Fr_NumId", $arr_id[$key]);
$Fact_BC->bindParam(":arr_Libelle", $value);
$Fact_BC->bindParam(":arr_Quantite", $arr_Quantite[$key]);
$Fact_BC->bindParam(":arr_Prix_Unitaire", $arr_Prix_Unitaire[$key]);
$Fact_BC->bindParam(":arr_Remise", $arr_Remise[$key]);
$Fact_BC->execute();
}}
}catch(PDOException $e){echo "<div class='alert alert-warning'>".$e->getMessage()."</div>"; die();}

Merci de votre aide

Configuration: Windows / Chrome 71.0.3578.98
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Bonjour,

Déjà, préfère la méthode POST à la méthode GET pour l'appel de ton ajax.
Ensuite, regarde dans la CONSOLE de ton nanvigateur si il y a des erreurs ou non

de préférene utilises Firefox pour débuguer ou si tu utilises chrome, installe le plugin ajax debuger

Tu peux aussi t'inspirer des codes présents ici :
https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery


Pour finir...
dans ton onclick tu utilise le "this" qui pointe sur l'input lui même ... et non pas sur l'ensemble des champs que tu pourrais avoir dans ton formulaire....
Mais ça .. tu l'aurais vu en regardant dans la console....
1
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour Jordane45, merci de ton aide. Le problème a été résolu ^^
En effet, j'ai préféré le $_POST au $_GET comme tu m'as recommandé.
Ca n'a pas été facile mais j'y suis arrivé tout seul comme un grand :D

Merci encore de ton aide.
0