2012-05-14 23 views
0

私はajax技術のかなり初心者です。私はmysql_queryを実行するためのPHPを持っており、私はクライアント側で結果を使用したいと思います。Ajax - jsonデータを取得できません。

マイdatabase.php

$q=mysql_query("SELECT name FROM customers"); 
$res=mysql_fetch_array($q); 
echo json_encode($res); 

と私のclient.php

<div id="output">this element will be accessed by jquery and this text replaced </div> 

<script id="source" language="javascript" type="text/javascript"> 

$(function() 
{ 
$.ajax({          
    url: 'database.php',     //the script to call to get data   
    data: "",       

    dataType: 'json',    //data format  
    success: function(data)   //on recieve of reply 
    { 
    var name = data[0];    

    $('#output').html("<b>id: </b>"+name); 

    } 
}); 
}); 

</script> 

これは私が見つけたいくつかのチュートリアルからです。そして、私はdatabase.php作品を見た。それは正しいデータを出力しますが、client.phpでは何も取得できません。何が問題なの?だから、---------

EDITED

---------は、PHP 4.4.7を実行するWebサーバ上のように思えるし、()関数はないwokrsを行いjson_encodeように見えますそのための。私は "解決策"を見つけた。私はupgrade.phpをインクルードしています。これはPHPの古いバージョンのための新しいメソッドを実装しています。 はこちらですhttp://include-once.org/p/upgradephp/

これは良い解決策ですか?現時点では、何来ている場合

+0

にこのコードを使用しますか?エラーをチェックできるように 'error'コールバックも定義すればどうでしょうか? – fcalderan

+0

console.log(data)を試してみてください。あなたの成功関数の中で –

+1

あなたは[mysql_ * '関数]をドロップするべきです(http://chat.stackoverflow.com/transcript/message/3656047#3656047)。 – PeeHaa

答えて

0

まずuが得たあなたの値に応じて...プリングにしようとか、自分の価値を警告する作品はありません。..

<div id="output">this element will be accessed by jquery and this text replaced </div> 

    <script id="source" language="javascript" type="text/javascript"> 

    $(function() 
    { 
    $.ajax({          
     url: 'database.php',     //the script to call to get data   
     data: "",       

     dataType: 'json',    //data format  
     success: function(data)   //on recieve of reply 
     { 
     alert(data); // check data value is coming or not.. 
     var name = data[0];    

     $('#output').html("<b>id: </b>"+name); 

     } 
    }); 
    }); 

    </script> 

はあなたのためにその印刷値を確認するか、ではありません。 ..

+0

あなたの答えは実際には質問:_answer_ではありません:)デバッグの提案をコメントと適切な回答として回答として投稿してください。 – supertopi

+0

多分私は問題がある。それは 出力を印刷します:4.4.7 – user1162316

+0

PHPのバージョンが古すぎる可能性があります。私はlocalhost(xampp)でそれをテストし、うまくいけば、webserver.Butだけでこの問題を持っています。明らかにxamppはPHPの新しいバージョンを持っています – user1162316

0
$.ajax({          
    url: '/database.php',  //Correct path.     
    //data: "",      
    type : 'Get', 
    dataType: 'json',     
    success: function(data)   
    { 
    alert(JSON.stringify(data)); 
    var name = data[0];  
    $('#output').html("<b>id: </b>"+name); 
    } 
}); 
+0

JSON.stringify(data);あなたはどんな価値がありますか? – Thulasiram

+0

動作しません。私は何も得られない。 – user1162316

+0

http:// localhost:49218/database.phpどのような値を取得していますか? http:// localhost:YourLocalHost/database.php。このページはどのフォルダにもありますか? – Thulasiram

0
$.getJSON("database.php",function(data){ 
var entries = data; 
$.each(entries,function(index,entry){ 
    //do stuff with json entry here 
}); 
}); 
0

は適切にそうである:

database.phpで

if (isset($_POST['getData'])) { 
    $q=mysql_query("SELECT name FROM customers"); 
    $res=mysql_fetch_array($q); 
    echo json_encode($res); 
    die(); 
} 

client.php

<div id="output">this element will be accessed by jquery and this text replaced </div> 

<script id="source" language="javascript" type="text/javascript"> 

$(function() 
{ 
    $.ajax({          
     url: 'database.php',     //the script to call to get data   
     type: "post", 
     data: { getData: true }, 
     dataType: 'json',    //data format  
     success: function(data)   //on recieve of reply 
     { 
      var name = data[0];    

      $('#output').html("<b>id: </b>"+name); 

     } 
    }); 
}); 

</script> 
0

あなたは、コールバックの内側 `data`の値をチェックすることができdatabase.phpで

$q=mysql_query("SELECT name FROM customers"); 

    while($res=mysql_fetch_array($q)) 
{ 
$a[]=$res['name']; 
} 
    echo json_encode($a); 
関連する問題