en fonction du choix de select je récupère la référence de l'article pour aller chercher son prix et l'afficher instantanément sans réchargement
<select name="reference" id="reference" onchange="actualise_prix(this.value)"> <option value="">Choisir votre ref :</option> <option value="ref1">Ref 1</option> <option value="ref2">Ref 2</option> <option value="ref3">Ref 3</option> <option value="ref4">Ref 4</option> <option value="ref5">Ref 5</option> </select> <div id="prix"></div> <script type="text/javascript"> function actualise_prix(elm){ var urlAjx = "articles.ajx.php"; var datas = {ref:elm}; $.ajax({ type: "POST", url: urlAjx, data: datas, dataType: "json", success: function(reponse){ // ici on actualise le prix en fonction du retour du php console.log(reponse);// le temps des tests if(typeof(reponse.prix)!="undefined" && reponse.prix!=null){ $("#prix").html(reponse.prix); } }, error:function(jqXHR, textStatus){ var error = jqXHR.responseText; alert('error :' + error); } }); } </script>
<?php // inclure le fichier de connexion à la bdd require_once "cnxBdd.php"; // à changer par TON fichier de connexion à la bdd !! //récupération PROPRE des variables $ref = !empty($_POST["ref"]) ? $_POST["ref"] : NULL; if($ref){ $q = array('ref'=>$ref); $sql = "SELECT * FROM article WHERE ref = :ref"; try{ $req = $db->prepare($sql); $req->execute($q) $result = $req->fetch(); }catch(Exception $e){ $result = "Error ! ".$e->getMessage(); } }else{ $result = "No REF !!"; } //on renvoie les donnees sous format json echo json_encode($result); ?>
Pour le submit, j'aurais besoin de valider le formulaire pour ajouter l'article au panier.
function ajouterArticle(){ var reference = $("#reference").val(); var urlAjx = "ajouterarticle.ajx.php"; var datas = {ref:reference}; $.ajax({ type: "POST", url: urlAjx, data: datas, dataType: "json", success: function(reponse){ //ici on traite la reponse si on le souhaite console.log(reponse); }, error:function(jqXHR, textStatus){ var error = jqXHR.responseText; alert('error :' + error); } }); }
<?php // inclure le fichier de connexion à la bdd require_once "cnxBdd.php"; // à changer par TON fichier de connexion à la bdd !! //récupération PROPRE des variables $ref = !empty($_POST["ref"]) ? $_POST["ref"] : NULL; if($ref){ $q = array('ref'=>$ref); $sql = "INSERT INTO panier (ref) VALUES(:ref)"; try{ $req = $db->prepare($sql); $result =$req->execute($q) }catch(Exception $e){ $result = "Error ! ".$e->getMessage(); } }else{ $result = "No REF !!"; } //on renvoie les donnees sous format json echo json_encode($result); ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
// liste déroulante
<select name="reference" id="reference">
<option value="">Choisir votre ref :</option>
<option value="ref1">Ref 1</option>
<option value="ref2">Ref 2</option>
<option value="ref3">Ref 3</option>
<option value="ref4">Ref 4</option>
<option value="ref5">Ref 5</option>
</select>
<div id="prix"></div>
// Appel Ajax
function actualise_infos() {
var elm, urlAjx = "article_ajax.php", datas = {ref:elm};
elm = $('[name="ref"]').val();
$.ajax({
type: "POST",
url: urlAjx,
data: datas,
dataType: "json",
success: function(reponse){
console.log(reponse);
if(typeof(reponse.prix)!="undefined" && reponse.prix!=null){
$("#prix").html(reponse.prix);
}
},
error:function(jqXHR, textStatus) {
var error = jqXHR.responseText;
alert('error :' + error);
}
});
}
$('#reference').on('change', actualise_infos);
// fichier: article_ajax.php
// inclure le fichier de connexion à la bdd
require_once "cnxBdd.php";
//récupération PROPRE des variables
$ref = !empty($_POST["ref"]) ? $_POST["ref"] : NULL;
if($ref){
$q = array('ref'=>$ref);
$sql = "SELECT * FROM article WHERE ref = :ref";
try{
$req = $db->prepare($sql);
$req->execute($q)
$result = $req->fetch();
}catch(Exception $e){
$result = "Error ! ".$e->getMessage();
}
}else{
$result = "No REF !!";
}
//on renvoie les donnees sous format json
echo json_encode($result);
elm = $('[name="ref"]').val();
// formulaire
<form>
<select name="reference" id="reference">
<option value="">Choisir votre ref :</option>
<option value="ref1">Ref 1</option>
<option value="ref2">Ref 2</option>
<option value="ref3">Ref 3</option>
<option value="ref4">Ref 4</option>
<option value="ref5">Ref 5</option>
</select>
<button type="submit">Ajouter</button>
<input type="hidden" name="ref" value="">
</form>
// Récuperation de la valeur du select et l'ajout dans input type hidden
function ajoutInputValues() {
var ref = $("#reference").val();
$('[name="ref"]').val(ref);
}
$('#reference').on('change', ajoutInputValues);
var elm, urlAjx = "article_ajax.php", datas = {ref:elm}; elm = $('[name="ref"]').val(); $.ajax({ type: "POST", url: urlAjx, data: datas,
var elm;
elm = $('[name="produit_ref"]').val();
var datas = {ref:elm};
var urlAjx = "include/plaque_ajax.asp";
// article.php
<form>
<select name="reference" id="reference">
<option value="">Choisir votre ref :</option>
<option value="ref1">Ref 1</option>
<option value="ref2">Ref 2</option>
<option value="ref3">Ref 3</option>
<option value="ref4">Ref 4</option>
<option value="ref5">Ref 5</option>
</select>
<button type="submit">Ajouter</button>
<input type="hidden" name="ref" value="">
</form>
<div id="prix"></div>
// Récuperation de la valeur du select et l'ajout dans input type hidden
function ajoutInputValues() {
var ref = $("#reference").val();
$('[name="ref"]').val(ref);
}
$('#reference').on('change', ajoutInputValues);
// Appel Ajax
function actualise_infos() {
var elm, urlAjx = "article_ajax.php;
elm = $('[name="ref"]').val();
var datas = {ref:elm};
$.ajax({
type: "POST",
url: urlAjx,
data: datas,
dataType: "json",
success: function(reponse){
console.log(reponse);
if(typeof(reponse.prix)!="undefined" && reponse.prix!=null){
$("#prix").html(reponse.prix);
}
},
error:function(jqXHR, textStatus) {
var error = jqXHR.responseText;
alert('error :' + error);
}
});
}
$('#reference').on('change', actualise_infos);
// fichier: article_ajax.php
// inclure le fichier de connexion à la bdd
require_once "cnxBdd.php";
//récupération PROPRE des variables
$ref = !empty($_POST["ref"]) ? $_POST["ref"] : NULL;
if($ref){
$q = array('ref'=>$ref);
$sql = "SELECT * FROM article WHERE ref = :ref";
try{
$req = $db->prepare($sql);
$req->execute($q)
$result = $req->fetch();
}catch(Exception $e){
$result = "Error ! ".$e->getMessage();
}
}else{
$result = "No REF !!";
}
//on renvoie les donnees sous format json
echo json_encode($result);
Mon fichier de connexion à la base de données se nomme connexion_bd.php
// inclure le fichier de connexion à la bdd require_once "cnxBdd.php";
2 mars 2017 à 11:01
Le code que tu nous montres ... c'est celui de "article.php" ???
Et dans ton AJAX tu fais appel à "article.php" aussi ???..... là y'a un souci !!