2012-02-11 6 views
0

Je travaille sur un album photo en utilisant ajax.Album photo - jquery ajax json + php

le code:

$(document).ready(function(){ 
    $('#next').click(function(){ 

    var next = $('#id').text(); 

    $.ajax({ 
     type: 'GET', 
     url: 'URL', //This I changed for this post 
     dataType: 'json', 
     data: { "id" : next}, 
     success: function(data){ 
      alert(data.error); 
      if(data.error == true) 
      { 
       alert(data.msg); 
      } 
      else 
      { 
      $('#pics').attr({ 
       src : data.src, 
       witdth : data.width, 
       height : data.height}); 
      $('#id').text(data.id); 
      } 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      alert(textStatus +' ' + errorThrown); 
     } 
    }); 
    }); 
}); 

code de fichier php:

if(is_integer($_GET['id'])) 
{ 
$error = false; 
$next = $_GET['id'] + 1; 

switch($_GET['id']) 
{ 
    case 1: $jsondata = '{"src" : "picture 01 valid path", '; 
      $jsondata .= '"width" : xxx, '; 
      $jsondata .= '"height" : xxx, '; 
      $jsondata .= ' "id" : '.$next; 
     break; 
    case 2: $jsondata = '{"src" : "picture 02 valid path", '; 
      $jsondata .= '"width" : xxx, '; 
      $jsondata .= '"height" : xxx, '; 
      $jsondata .= ' "id" : '.$next; 
     break; 
    ...+cases... 
    default: $jsondata = '{"msg" : "An error occured. Please close the tab and enter again. Thanks."'; 
      $error = true; 
} 

$jsondata .= ', "error" : '.$error.'}'; 

echo json_encode($jsondata, true); 
} 

code HTML: & lsaquo; img src = "chemin valide" width = hauteur "xxx" = "xxx"/& rsaquo ;

Avec la console javascript de chrome, l'erreur est que "erreur" est nulle. J'ai essayé beaucoup de combinaisons et de possibilités sur le web sans aucun succès! Peux-tu m'aider avec ceci?

Merci d'avance!

PS: Je ne suis toujours pas sûr que cette solution naviguer dans l'album photo: S C'est autre question après avoir répondu à cette ..

+0

Vérifiez la réponse à l'aide de l'inspecteur Chrome ou Firebug. Assurez-vous qu'un objet valide revient et que 'data' existe. Et remplacez 'alert (data.error);' par 'console.log (data);' pour voir si c'est un objet valide. – Richard

Répondre

0

Vous créez une chaîne JSON dans votre code php afin que vous n'avez pas à l'encoder.

Supprimez cette ligne echo json_encode($jsondata, true); de votre code PHP et juste echo $jsondata et essayez.

0

Vous n'avez pas besoin de faire json_encode, si l'écho de jsondata $ devrait être assez