Rob*_* S. 5 html javascript php ajax jquery
我对 PHP 和 Ajax 都很陌生,所以这可能看起来微不足道,尽管我似乎找不到明确的答案。
我正在使用 ajax 向 process.php 发送查询,然后在页面上显示结果。我的工作正常,一切正常:
$.ajax({
type: "POST",
url: "process.php",
data: { 'data1': yada, 'data2': yadayada},
beforeSend: function(html) {
$("#some-div").html('<p>loading</p>');
},
success: function(html){
$("#some-div").html(html);
}
});
Run Code Online (Sandbox Code Playgroud)
现在,这是有效的,因为我基本上是在 process.php 的末尾回显查询结果,然后显示在 #some-div 中。问题是,我还想检索一些在 PHP 中处理过的数据,以便在我的 JS 中使用它。但是,我不想在 PHP 的末尾回显这些数据,因为我不想在 #some-div 中显示它。
换句话说,说我的 process.php 看起来像这样:
$var1 = "hello world";
$var2 = "It's sunny outside";
$var3 = ["key1"=>"one", "key2"=>"two", "key3"=>"three"];
$result = $var1 . $var3["key2"];
echo $result;
Run Code Online (Sandbox Code Playgroud)
$result 显示在#some-div 中,这很好。但是如果我想做一个美妙的 alert(); 在 JS 中使用 $var3["key3"] 的内容而不在 #some-div 中显示它?
我应该进行另一个查询(这似乎不方便且效率低下),还是有办法将数据从 process.php 传递到 JS 而不回显它?
谢谢!
将数据输出为JSON,以便您可以拥有单独的部分或变量:
$response = array('result' => $result, 'otherData' => $var3);
echo json_encode($response);
Run Code Online (Sandbox Code Playgroud)
JavaScript:
$.ajax({
type: "POST",
url: "process.php",
data: { 'data1': yada, 'data2': yadayada},
dataType : 'json', // <-- tell jQuery to parse the JSON
beforeSend: function(html) {
$("#some-div").html('<p>loading</p>');
},
success: function(response){
alert( response.otherData.key3 );
$("#some-div").html(response.result);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3030 次 |
| 最近记录: |