从类和函数中使用PHP读取/输出JSON

从类和函数中使用PHP读取/输出JSON,php,jquery,mysql,class,pdo,Php,Jquery,Mysql,Class,Pdo,我通常使用Jquery获取所有JSON数据,但目前我只需要使用PHP 本质上,这就是我通常使用Jquery获取和输出它的方式:(代码片段,而不是整个代码) 其中uid是传递给php用于查询数据库的值 这是php后端:(同样只是JSON部分的一个片段) 显然,在输出页面上,我与jquery一起启动了类和函数: $class = new retrieveData(); $class->userDetails(); 然后,为了在需要的地方输出数组的各个部分,我将为特定数组部分创建一个具有相同唯

我通常使用Jquery获取所有JSON数据,但目前我只需要使用PHP

本质上,这就是我通常使用Jquery获取和输出它的方式:(代码片段,而不是整个代码)

其中uid是传递给php用于查询数据库的值

这是php后端:(同样只是JSON部分的一个片段)

显然,在输出页面上,我与jquery一起启动了类和函数:

$class = new retrieveData();
$class->userDetails();
然后,为了在需要的地方输出数组的各个部分,我将为特定数组部分创建一个具有相同唯一键的范围,如jquery中所述


如何将jquery部分转换为PHP?

jquery是用JavaScript编写的,在用户浏览器上运行,而PHP只在服务器上运行。无法将在浏览器上运行的内容转换为在服务器上运行的内容。换句话说,您不能使用AJAX函数,例如
post


阅读

因此,如果我理解您的意思,您只需要重新编写整个ajax端,以便从服务器发送请求:

$ch = curl_init($theUrlThatReturnsTheData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('uid' => $uid));
curl_setopt($ch, CURLOPT_POST, true);
$jsonData = curl_exec($ch);

$data = json_decode($jsonData);
现在用json做任何你需要做的事情。。。假设从jquery片段中 大概是这样的:

<div id="<?php echo $uid ?>">
   <?php foreach($data as $key => $value): ?>
       <span id="span-<?php echo $key ?>">
         <?php echo $value ?>
       </span>
   <?php endforeach; ?>
</div>

。。。是的,你可以。您可以使用
curl
作为“post”,还可以使用PHP生成发送到浏览器的JS。根据功能的不同,许多代码可以移植到其他语言。Ric,该脚本工作正常。它通过一个控制器文件运行,该文件允许在不刷新页面的情况下返回PHP。但我要问的问题是,如何将Jquery脚本重新编写成PHP脚本。@Jon我想他正在尝试根据他的代码片段转换AJAX。我知道你可以使用
curl
执行服务器端请求。@Ric看看接受的答案^^他想要的正是
curl
,只是试图从PHP而不是JS获取json对象^^@乔恩·尼斯,我不会认为那是他想要的。我不怀疑,你什么意思?您希望PHP做什么?以字符串形式修改HTML页面存储的内容?您当前正在创建的页面?等等?您在php中生成的json不正确。您正在生成多个独立的json片段。这是完全错误的。您需要将查询数据提取到一个数组中,然后对整个数组进行编码。我想从PHP函数中获取整个数组,然后调用数组的不同部分以显示在页面的不同部分。我不想一次显示整个阵列。例如:在页面左侧显示用户名,然后在侧边栏中显示数组的电子邮件部分。。。等等,这正是我想要的。我做了一半,但没有包括“echo$key”部分。
$ch = curl_init($theUrlThatReturnsTheData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('uid' => $uid));
curl_setopt($ch, CURLOPT_POST, true);
$jsonData = curl_exec($ch);

$data = json_decode($jsonData);
<div id="<?php echo $uid ?>">
   <?php foreach($data as $key => $value): ?>
       <span id="span-<?php echo $key ?>">
         <?php echo $value ?>
       </span>
   <?php endforeach; ?>
</div>