2017-03-08 13 views
0

PHPページを呼び出すJavaScriptページがあります。ajaxの呼び出しで結果全体のみをエコーする方法

$.getJSON('result.php', function(json){ 
    var data = json.result[0]; 
}).complete(function(){   
// do this 
}).error(function(jqXHR, textStatus, errorThrown) {   
// do this 
}); 

これは)私は問題が$ .getJSON(ある

<script> 
    // script 
    // script 
    // script 
    // script 
</script> 

をfollwoingようないくつかのJavaScriptのスクリプトを追加したresult.phpはconfigページで

require_once('config.php'); 

header("Content-type: application/json; charset=UTF8"); 
$apiMgr = new API(0, 0, array("result")); 
$apiResult = $apiMgr->callAPI('GET', 'result', isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/historical' ? '?option=follow' : null, null); 
echo $apiResult; 

どのように見えるかで提供します私は構文エラーです。なぜなら、result.phpからの応答全体には存在してはいけないスクリプト部分も含まれているからです。

ページ全体ではなく、$ apiResultだけをエコーし​​たり返したりしたいと思います。私は私の問題を説明してくれることを願っています。それが明確でなければ、私はそれをもっと説明しようとします。

提案がありますか?

答えて

0
echo $apiResult; 
exit(); 

あなたはあなただけecho文の前にヘッダを言及する必要が

+0

働くいただければ幸いです

echo json_encode($apiResult); 

にしようとJSON であなたのエコー部分をコードしていないことを把握、それはしませんでした作業。なぜ私は不思議に思っているのですか?何が間違っているのですか? – Shaonline

0

をバッファリングヘッダを停止する必要があります。また、スクリプトの実行後にスクリプトの実行を終了します。

$apiMgr = new API(0, 0, array("result")); 
$apiResult = $apiMgr->callAPI('GET', 'result', isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/historical' ? '?option=follow' : null, null); 

header("Content-type: application/json; charset=UTF8"); 
echo $apiResult; 
exit; 
+0

私はそれを試しましたが、それでも動作しません:( – Shaonline

-1

スクリプトタグなしで他のconfig.phpが必要です。または、config.phpに条件を追加し、スクリプトタグを表示する必要があるかどうかをテストします。あなたの質問から

 


    $.get('result.php', function(data){ 
     var data = json.result[0]; 
    }).complete(function(){   
    // do this 
    }).error(function(jqXHR, textStatus, errorThrown) {   
    // do this 
    }); 

    function callbackfunction(data){ 
     //do something 
    } 

    //in your result.php 

    require_once('config.php'); 

    $apiMgr = new API(0, 0, array("result")); 
    $apiResult = $apiMgr->callAPI('GET', 'result', isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/historical' ? '?option=follow' : null, null); 
    echo ''; 
    echo 'callbackfunction('.$apiResult.')'; 
    echo ''; 

+0

私はこれらのスクリプトタグを自分の設定ファイルに入れておく必要がありますが、これは重要なスクリプトであり、削除する余裕はありません。 – Shaonline

+0

$ .getJSONでリクエストを送信すると、このメソッドはjson形式のテキストのみを取得する必要があります。スクリプトタグを使用すると、ヘッダーが既に送信されているために作業できません。 –

+0

あなたは次のようにすることができます: 'エラー(function(jqXHR、textStatus、errorThrown())は、エラーコードを返します。 ){ }); 関数コールバック関数(データ){ \t //何かを実行$ apiResult = $ apiMgr-> callAPI( 'GET'); $ apiResult = $ apiMgr-> callAPI( 'get.php'); $ apiResult = 、 'result'、isset($ _ SERVER ['PATH_INFO'])&& $ _SERVER ['PATH_INFO'] == '/ historical'? echo 'callbackfunction('。$ apiResult。 ')'; echo ''; 'code'( '?option = follow':null、null); echo 'スクリプトタイプ=" text/javascript " –

0

私はあなたはそれが私はそれを試してみました

関連する問題