Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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脚本未在函数内部运行_Php_Javascript_Html - Fatal编程技术网

PHP脚本未在函数内部运行

PHP脚本未在函数内部运行,php,javascript,html,Php,Javascript,Html,在我将PHP脚本移动到Javascript函数中之前,它一直在工作。不能这样做吗 //Javascript function displayPlace() { //PHP <?php $place = mysql_query("select * from tblRestaurants order by RestName ASC"); while ($nt= mysql_fetch_assoc($place)) $arrData[] = $nt;

在我将PHP脚本移动到Javascript函数中之前,它一直在工作。不能这样做吗

//Javascript
function displayPlace() 
{

//PHP
    <?php
    $place = mysql_query("select * from tblRestaurants order by RestName ASC");

    while ($nt= mysql_fetch_assoc($place))
    $arrData[] = $nt;
    if(isset($_GET["ajax"]))
     {
    echo json_encode($arrData);
    die();
     }
    ?>  

//Javascript
    $.getJSON("index.php?ajax=true", function(data) {
        $.each(data, function(index, objRecord) {
            var option=document.createElement("option");
            option.value=objRecord.RestID;
            option.text=objRecord.RestName;
            $("#Doggie").append('<option value="' + objRecord.RestID + '">' + objRecord.RestName     + '</option>');
//Javascript
函数displayPlace()
{
//PHP
//Javascript
$.getJSON(“index.php?ajax=true”),函数(数据){
$.each(数据、函数(索引、对象记录){
var option=document.createElement(“选项”);
option.value=objRecord.RestID;
option.text=objRecord.RestName;
$(“#Doggie”).append(“”+objRecord.RestName+“”);

我猜您正在点击整个脚本中退出的
die()。脚本的其余部分将停止。删除它,它会有所帮助。

虽然该PHP片段可能与您放置它的Javascript函数相关,因为您将其放置在代码的深处,但它不会返回正确的响应

您的目标是,当您调用
$.getJSON()
时,PHP将返回一个JSON编码的字符串……但是因为您将PHP代码放在页面中,不相关的文本字符(包括
函数displayPlace(){
及其之前的所有内容)将在JSON之前内联返回,这让人感到困惑
$.getJSON()

将PHP代码片段放在代码的顶部以避免此问题。或者更好的是,创建一个单独的
json.PHP
页面来处理json请求。
编辑以澄清:
不要把PHP放在那里,它不属于那里

在调用Javascript函数时,将PHP代码放在Javascript函数中不会导致执行该代码。请求页面时,PHP在服务器上运行,一旦提供页面,它就会停止*
当您调用JSON函数时,您再次请求页面,因此PHP将执行整个页面并返回整个页面,直到它到达该代码段。您将得到一组HTML和Javascript,然后是一个JSON字符串,而不是返回有效的JSON字符串。此响应不可用。

无论您以前在哪里(当它工作时)有PHP代码段都是合适的。更容易维护的做法是将所有与返回JSON相关的PHP代码移动到名为
JSON.PHP
的文件中,然后从
$.getJSON()请求该文件
而不是
index.php

代码中不清楚您的函数是JavaScript还是php。您可以在JS函数中使用php,但不是这样。了解如何启用
错误报告
显示错误
。将JSON字符串回送到JavaScript函数中间有什么用初始化?这不会产生有效的Javascript。看看PHP输出,你就会知道问题出在哪里。(而且
die
ing不会有任何帮助……你为什么要这样做?)你重复的“尝试过了,没有用”回答表明您没有试图理解代码的性质和问题的性质。请仔细思考,而不是猜测!此代码可能存在多个问题--仅修复一个问题不一定是让您的页面“工作”的灵丹妙药。没有工作。如果我移动