あなたはAJAX呼び出しの詳細な制御を持つことができますので、あなたが「結果」変数ではJavaScript 文字列になりたいかどうかを定義することができるように、私は$アヤックスではなく、$ .postを使用することをお勧めしまたはオブジェクトです。 jQueryのJavaScriptオブジェクトにそれを自動的に変換することができるように
<form method="post">
<input type="text">
<button id="btn-1">
</form>
<div id="ajax-result"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
// Define global variable to contain a copy of the AJAX return result
var globalResult;
function formatResultIntoHtml(result) {
// add logic to convert your result object into html string, and return
}
$("#btn-1").click(function(){
var txt = $("input").val();
$.ajax({
url: "result.php",
data:{
suggest: txt
},
type: "POST", // Set HTML action type
dataType: "json", // Set expected data return type
success:function(result) {
globalResult = result; // Make result variable global
$("#ajax-result").html(formatResultIntoHtml(result)); // Format
}
});
});
});
</script>
は、その後、あなたのresult.phpファイルで、JSON文字列をエコー。
<?php
// Add your logic to process $_GET['suggest'] here
$dataArray = array(
'var1' => 'data1',
'var2' => 'data2',
'var3' => 'data3'
);
header('Content-Type: application/json'); // Tells our client that we are sending JSON data
echo json_encode($dataArray);
?>
'someVariable = result;'?何を試してみましたか? – David
あなたのPHPコードも共有してください。 – squiroid
これはすでに 'result'という変数です。これはコールバック関数のローカル変数です。それをグローバル変数にしたい場合は、まずその変数をグローバルスコープで定義します: 'var myGlobalVar;'そして、それにコールバック関数の中にresultの値を代入します: 'myGlobalVar = result;' –