我知道这个问题已经以各种形式被问到,但我一直无法找到一个符合我试图完成的回答。完全是业余爱好者,所以任何额外的指点都是值得赞赏的。
任务:
使用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(结果);