通过jQuery检索PHP变量


Retrieve PHP Variable via jQuery

我知道这个问题已经以各种形式被问到,但我一直无法找到一个符合我试图完成的回答。完全是业余爱好者,所以任何额外的指点都是值得赞赏的。

任务:
使用page1上的表单将数据发送到PHP文件,然后该文件在MySQL表中搜索与$_POST[]对应的行。然后,PHP文件将结果回显为JSON_encode($variable)。从那里,PHP文件将用户重定向到page1,它(理论上)有一个JQuery脚本,从PHP文件调用$variable并使用数据创建html。

代码:
PHP

<?php
ob_start();
session_start();
session_save_path('path');
mysql_connect("", "", "")or die(); mysql_select_db("db")or die();
$pname = $_POST['country'];
$result = mysql_query("SELECT * FROM project WHERE name = '$pname'");      
$array = mysql_fetch_row($result);  
echo json_encode($array);
header("page1.html");
?>
html/jquery ajax

<script type="text/javascript">// <![CDATA[
$(document).ready( function() {
    $.ajax({
        type: 'POST',
        url: 'page.php',
        data: '',
        dataType: 'json',
        cache: false,
        success: function(result) {
            $('#content1').html(data);
        },
    });
});
// ]]></script>
<div id="content1"></div>

php脚本工作,并响应JSON编码的变量,但没有#content1…我有一种感觉,要么我的代码是错误的,要么数据丢失,而张贴到PHP文件,然后重定向。

您试图将变量data附加到内容,但该变量称为result。试试这个:

<script type="text/javascript">// <![CDATA[
$(document).ready( function() {
$.ajax({
type: 'POST',
url: 'page.php',
data: '',
dataType: 'json',
cache: false,
success: function(result) {
$('#content1').html(result);//<- this used to be $('#content1').html(data);
},
});
});
// ]]></script>
<div id="content1"></div>

此外,正如许多人指出的那样,您现在只是输出json -没有任何东西可以生成表。

改变美元("# content1"). html(数据)美元("# content1"). html(结果);