Affichage de "data", mais pas de data.items

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage de "data", mais pas de data.items

Re: Affichage de "data", mais pas de data.items

par momox » 25 juin 2014, 15:10

D'un autre coté, le retour de ton appel AJAX est un objet ({...}) dans une collection ([...]).
Donc si tu veux accéder à data.ISBN c'est data[0].ISBN que tu dois demander.

Re: Affichage de "data", mais pas de data.items

par Elie » 24 juin 2014, 17:53

J'avais un soucis je crois similaire ... Il aime pas les " " autour d'un nombre.
Je fais toujours ca du coup
json_encode(str_replace('"', '', $data));

Re: Affichage de "data", mais pas de data.items

par RL-Flo » 24 juin 2014, 11:22

Rebonjour !
Vu qu'on est rarement payé à rien faire, voici ma fonction de remplacement

[javascript] $.ajax({
type:"post",
url:"php/pCompte_admin_commandesbackoffice.php",
datatype:"json",
data:"oneid="+id1+"&qte="+qte,
success:function(data){
$('#resultats').html(data); // display data

data= data.substring(data.search('"idProduct"')+13);
var id_prod = data.substring(0,data.search('"'));
//console.log(id_prod);

data = data.substring(data.search('"ISBN"')+8);
var isbn = data.substring(0,data.search('"'));
//console.log(isbn);

data = data.substring(data.search('Price')+9);
var price = data.substring(0,data.search('"'));
//console.log(price);

data = data.substring(data.search('"Nom"')+7);
var nom = data.substring(0,data.search('"'));
//console.log(nom);

//console.log(data);
}[/javascript]

au ças ou cela puisse servir un jour à qqun dans le besoin !
Je récupere bien les informations que je cherchais, mais je veux bien qu'on m'explique quand même l'ajax ! :)

Affichage de "data", mais pas de data.items

par RL-Flo » 24 juin 2014, 10:48

Bonjour tout le monde, je viens vous contacter car j'ai un souci en ajax :

J'aimerai récuperé les données suivantes: IdProduct,ISBN et prix
j'arrive à récuperer mon tableau de données, mais pas les données en elles mêmes !

Voici ma fonction ajax :
[javascript] $.ajax({
type:"post",
url:"php/pCompte_admin_commandesbackoffice.php",
datatype:"json",
data:"oneid="+id1+"&qte="+qte,
success:function(data){
$('#resultats').html(data); // display data
var input_id = '<p>'+data.ISBN+'</p>' ;
$('#hiddeninputs').append(input_id);
console.log(data);
console.log(data.ISBN);[/javascript]


qui va chercher cette fonction
if($id_unique!=0 && $id_unique!=null ){
$id_unique_qte=$_POST["qte"];  
$sql = "SELECT * FROM `products` WHERE `strProductReferenceOrISBN`= ".$id_unique." " ;
     $query=mysql_query($sql);
      while ($res=mysql_fetch_assoc($query)){
            $resultat = $res;
    }
    if($resultat!=null){
     //echo ($resultat['idProduct'].' - '.$resultat['strProductReferenceOrISBN'].' - '.$resultat['strProductName'].' - '.$resultat['numSalePrice']);
     //echo (" quantite : ".$id_unique_qte);
     echo json_encode(array(array("idProduct" => $resultat['idProduct'], "ISBN" => $resultat['strProductReferenceOrISBN'], "Price" => $resultat['numSalePrice'], "Nom" => $resultat['strProductName'])));
  }


La console log.Data me retourne :
[{"idProduct":"22078","ISBN":"9781423635482","Price":"16.95","Nom":"Little Master Kipling : The Jungle Book"}]

Pris d'optisme, je me disais que le plus dur était fait !
Hélas, si je veux sélectionner l'ISBN à l'aide de log(data.ISBN), le résultat est "undefinni"

Par allieurs, si j'essaie de récuperer les données à l'aide de
$.each( data, function( key, val ) {
console.log(key);
console.log(val);
});

je récuperer chaque caractères de ma string data...:
0 //key
[ // value
1 //key
{ //value
2 /key
" //value
3 //key
...
Pouvez vous m'indiquer ce que j'ai oublié? Merci, je débute en ajax !