gpt4 book ai didi

javascript - Ajax:在没有回显的情况下将 PHP 变量发送到 JS?

转载 作者:可可西里 更新时间:2023-10-31 23:05:31 24 4
gpt4 key购买 nike

我对 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);
}
});

现在,这是可行的,因为我基本上是在 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;

$result 显示在#some-div 中,没问题。但是,如果我想做一个很棒的 alert(); 怎么办?在 JS 中使用 $var3["key3"] 的内容而不在#some-div 中显示它?

我是否应该进行另一个查询(这看起来不方便且效率低下),或者是否有一种方法可以将数据从 process.php 传递到 JS 而无需回显?

谢谢!

最佳答案

输出数据为JSON这样你就可以有单独的部分或变量:

$response = array('result' => $result, 'otherData' => $var3);
echo json_encode($response);

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);
}
});

关于javascript - Ajax:在没有回显的情况下将 PHP 变量发送到 JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22943013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com