2012-02-11 10 views
0

私はajaxを使ってフォトアルバムを作っています。フォトアルバム - jquery ajax json + php

JSコード:

$(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); 
     } 
    }); 
    }); 
}); 

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); 
} 

htmlコード: ‹のIMG SRC = "有効なパス" 幅= "XXX" 高さ= "XXX" /&rsaquo ;

クロムジャバスクリプトコンソールでは、エラーは「エラー」がnullです。私は、成功しなくてもウェブ上で多くの組み合わせとポジションを試しています!これで私を助けることができますか?

ありがとうございます!

PS:私はまだこのソリューションは、フォトアルバムをナビゲートするかどうかわからない:Sこれを答えた後、他の質問です。..

+0

十分なはずです、json_encodeをする必要はありません。有効なオブジェクトが戻ってきて、 'data'が存在することを確認してください。 'alert(data.error);を' console.log(data);で置き換えて、それが有効なオブジェクトであるかどうかを確認します。 – Richard

答えて

0

あなたがに持っていけないので、あなたのPHPコードでJSON文字列を作成していますそれをエンコードする。

あなたのPHPコードからecho json_encode($jsondata, true);を削除して、ただecho $jsondataを試してみてください。

0

あなたは、ChromeのインスペクタまたはFirebugのを使用して応答を確認するので、エコーの$ jsondataが