Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery、ajax、json、mysql\u查询不工作_Php_Jquery_Mysql_Json - Fatal编程技术网

Php Jquery、ajax、json、mysql\u查询不工作

Php Jquery、ajax、json、mysql\u查询不工作,php,jquery,mysql,json,Php,Jquery,Mysql,Json,show_page.php: <? session_start(); include("includes/function.php"); $static = mysql_query("SELECT * FROM fb_pages WHERE user_id = '$_SESSION[user_id]' AND page_value = '1' ") or die(mysql_error()); while($stat = mysql_fetch_a

show_page.php:

   <?

 session_start();
  include("includes/function.php");

$static = mysql_query("SELECT * FROM fb_pages WHERE user_id = '$_SESSION[user_id]' AND page_value = '1' ") or die(mysql_error());

            while($stat = mysql_fetch_array($static)) {

                    $page = $stat['page_name'];


                            echo json_encode($page);
  exit();

                    }       

ob_and_flush();     
?>  
这部分

 $page = $stat['page_name'];


 echo json_encode($page);
看起来$page不是数组,所以不需要添加json_encode()函数。
因此,您不需要在循环中退出的数据类型:“JSON”

,因此它只处理第一行。您需要收集一个数组中的所有结果,对整个数组调用
json\u encode
,然后退出

$page = array();
while ($stat = mysql_fetch_assoc($static)) {
  $page[] = $stat['page_name'];
}
echo json_encode($page);
ob_end_flush();
exit();
但是,jQuery会:

$('#page').html(response);
这要求
response
是HTML,而不是数组。您需要将其更改为对响应中的每个页面名称执行某些操作的循环,例如

$.each(response, function(i, p) {
   $('#page').append($('<div/>', { text: p }));
});
$。每个(响应、函数(i、p){
$('#page')。追加($('',{text:p}));
});

看起来您正在尝试输出多个独立的json字符串。这是行不通的。代码可能更像:

$data = array();
while ($stat = mysql_fetch_array($static)) {
    $data[] = $stat['page_name'];
}
echo json_encode($data);
请记住,JSON基本上是javascript赋值操作的右侧。创建为JSON的任何内容都必须是有效的javascript,例如

var foo = json_goes_here.
你在做类似的事情

var foo = 'bar''baz';
相反,构建一个字符串数组,当json编码时,它更像

var foo = ['bar', 'baz'];

请不要使用
mysql\u query
编写新代码。这是一个不推荐使用的接口,正在从PHP中删除。此外,你应该非常小心,否则你会结束与肮脏。您不应将
$\u会话中的任意数据插入查询中。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,不确定你的问题是什么。你是说它没有给你JSON?问题是,不要显示所有页面,只显示一个!总是一个页面,但是删除exit(),代码,然后显示所有页面,但是这次不要使用jquery,ajax:Shere是个问题,如果我使用jquery没有结果,那么你可以只运行show_page.php good我不明白你的意思,使用JSONAlso,只是为了添加到这个
ob_和_flush()不存在,它应该是
ob\u end\u flush()
,或者
ob\u end\u clean()
。无论如何,可能没有理由使用
ob\u XXX
函数。100%同意,退出后,它不会尝试运行它,但只需确保OP是清晰的。如果您需要帮助,你必须更具体地说明我的答案有什么问题。当然,我想要,并在ob_end_clean()上更改了ob_和_flush(),但这样做不起作用。如果显示不同的方法并不重要,目标是使用jquery和ajax显示php文件的结果
var foo = ['bar', 'baz'];