2016-11-15 6 views
0

MY AJAX機能は、Ajaxを実装するためにどのようにHTTPGETメソッドを実装し、AJAXするJSONとしてレスポンスを返すPHP関数を呼び出す

$(document).ready(function(){ 
     $("#sub").click(function() 
     { 
     console.log("Ajax out"); 
     var isbn= $('#isbn').val();  
      $.ajax({ 
       type:"POST", 
       url:"httprequestget.php", 
       data : "isbnn="+isbn, 

       success:function(response) 
       { 

       console.log("Ajax - in (response)"); 
       alert(response); 




       } 
       }); 
       }); 

      }); 

MY httpgetrequest.php

$isbnn='12345'; 
$result2=myRestapiGET($isbnn); 

function myRestapiGET($isbn) 
{ 
    $url = 'http://localhost:8080/Scanbook-server/books/'.$isbn; 
    $options = array(
    'http' => array 
    (
    'method' => 'GET' 
    ), 
        ); 
     $context = stream_context_create($options); 
     $result = file_get_contents($url, false, $context); 

    return $result; 
} 

私が欲しいです私は応答を取得するいくつかのランダム変数をエコーする関数を使用せずにしようとすると、json形式としてPHPで取得関数によって取得されたjson形式として結果を返す。

+0

'method => GET'のためにコンテンツを使う必要はありません。これは' file_get_contents() 'のデフォルトです。 – Barmar

答えて

0

ここでの問題は、あなたがオブジェクトとしてデータを送信していないということです。そのため、ランダム変数で試してみると効果があるのです。次のコードを試してみてください:

$("#sub").click(function() { 

    var isbn= $('#isbn').val();  

    $.ajax({ 
     type: 'POST', 
     url: 'httprequestget.php', 
     data: { isbn: isbn }, 
     success: function (response) { 
      console.log("Ajax - in (response)"); 
      alert(response); 
     } 
    }); 

} 

+0

'data:'はオブジェクトか文字列のどちらかです。 – Barmar

+0

レスポンスありがとうございます。私はそれを私のUIはフォームのタイプだったので、私はフォームを削除し、フォームなしで定期的にそれをしました。 –

+0

私はその昨夜について考えていましたが、コメントできませんでした。さて、あなたはまだフォームデータを保持することができます。あなたはこのようなものを使用する必要がありました。 – Morfinismo

0

私が正しく理解しているかわかりません。

$.ajax機能でdatatype属性の追加: dataType: "json"

をそしてScanbook-server/books/スクリプトでレスポンスを返すようにPHP json_encodeを使用します。

echo json_encode(["book" => "foo", "isbn" =>13456, "response" => 'success']);

+0

レスポンスのおかげで、私のUIはフォームタイプなので、私はフォームを削除し、フォームなしで定期的に行いました。 –

0

あなたは関数の結果をエコーする必要がありますクライアントに返信する:

$isbnn = $_POST['isbnn']; 
$result2=myRestapiGET($isbnn); 
echo $result2; 
+0

レスポンスありがとうございます。私はそれを私のUIはフォームの種類だったので、私はフォームを削除し、フォームなしで定期的にそれをしました。 –

+0

@ KarthicParamasivam解決方法を示す回答を投稿する必要があります。 – Barmar

+0

はい、私のUIに問題がありました。 htmlフォームを削除してbutton.nowに変更しました。私の関数が実行されます –

関連する問題