2011-05-08 6 views
1
$('.editBtn').click(function(){//EDIT BUTTON EVENT 
     $.getJSON('edit.php?url='+encodeURI($(this).siblings('a').attr('id'))+'&action=edit',function(data){ 
      $.each(data, function(key, val) { 
       alert(key+': '+val); 
      }); 
     }); 
    });//EDIT BUTTON END 

et ici fait partie php en question:JSON données redondantes récupérées

elseif($_GET['action']=='edit'){ 
$output=$mysql->getDb()->query("select * from video 
    where url='{$_GET['url']}'")->fetchAll(); 
header("content-type: application/json"); 
echo json_encode($output[0]); 
} 

ce qui se passe est que lorsque vous cliquez sur .editBtn alerte bouton apparaît 0:value0, 1:value1,... puis va à nouveau, mais d'une manière que je ne le veux être name0:value0, name1:value1,...

Que se passe-t-il?

p.s. run php indépendamment:

{"url":"www.vimeo.com\/20721308","0":"www.vimeo.com\/20721308","title":"Dis-patch Festival R.I.P.","1":"Dis-patch Festival R.I.P.","description":"Sadly, the last goodbyes to the Dis-patch Festival Belgrade edition in this tribute \"R.I.P.\" video collage. The end is always the beginning...","2":"Sadly, the last goodbyes to the Dis-patch Festival Belgrade edition in this tribute \"R.I.P.\" video collage. The end is always the beginning...","country":"serbia","3":"serbia","postDate":"2011-05-07 05:56:04","4":"2011-05-07 05:56:04","views":null,"5":null}

+0

pouvez-vous exécuter edit.php indépendamment et coller la sortie ici? –

+0

oui. jetez un autre coup d'œil au-dessus de –

+0

Donc, vous dites que ça court et que vous alertez tout deux fois? Tout semble bien. Peut-être que vous attachez le gestionnaire de clic deux fois? L'avez-vous posté quelque part que nous pouvons le voir en action? –

Répondre

0

Pas exactement du format retourné ici .. cadre général des objets SQL renvoient les données définies dans son propre format d'objet .. Vous voulez probablement passer les données SQL dans un tableau objet, puis json_encode le tableau à votre client.

$returnData = array(
    'name' => $output[0]->name, 
    'videopath' => $output[1]->videopath 
); 

echo json_encode(array('success'=>1, 'data'=>$returnData)); 
+0

c'était parfait !! merci beaucoup très –

+0

Pas de problème - gardez un œil sur vos types de données primitifs par rapport aux types de données natifs de votre framework - souvent ils ne seront pas compatibles avec d'autres langages. Je suggère également lors de l'utilisation d'ajax en utilisant une clé de données de succès pour gérer les réponses :) – Atticus

+0

s'il vous plaît si vous avez un article/discussion pour me référer à, je serais heureux de lire. –

Questions connexes