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); ?>
// 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";
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.
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 !!