Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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数组到javascript数组_Javascript_Php_Jquery_Arrays - Fatal编程技术网

混合php数组到javascript数组

混合php数组到javascript数组,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,是的,有人问了很多。不,经过几天的在线搜索,我仍然无法让它工作。(另外:是的,我对php还是相当陌生的,而且还是一个复制/粘贴编码器)。我在PHP中有一个名为EP的数组。我洗牌。然后我需要将EP的洗牌值传递到javascript数组 我在这里查看了所有答案,但没有成功: Spudley的答案在一个文件中使用php和javascript,而我使用的是单独的文件(index.php、data.php、main.js)。如果我使用Eric的答案,netbeans会告诉我“预期的操作对象,但找到了…”

是的,有人问了很多。不,经过几天的在线搜索,我仍然无法让它工作。(另外:是的,我对php还是相当陌生的,而且还是一个复制/粘贴编码器)。我在PHP中有一个名为EP的数组。我洗牌。然后我需要将EP的洗牌值传递到javascript数组

我在这里查看了所有答案,但没有成功: Spudley的答案在一个文件中使用php和javascript,而我使用的是单独的文件(index.php、data.php、main.js)。如果我使用Eric的答案,netbeans会告诉我“预期的操作对象,但找到了…”

该数组位于data.php中:

$EP = array(30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220);
shuffle($EP);
我需要在main.js中使用这个无序数组(以无序顺序),这样我就可以用jqplot将其显示在图形中。 我使用了这个,但是整个js文件基本上停止了工作

var arrayFromPHP = "<?php echo json_encode($EP); ?>";
alert( $.toJSON(arrayFromPHP) );

有人能指出我的错误吗?

这将转换你的数组

<?php
$EP = array(30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220);
echo '<script>
var ep = [ '. implode(' , ', $EP) .' ];
</script>
';
?>

如果你想在.js文件中使用它(小心缓存),你必须编辑你的.htaccess文件

<FilesMatch "\.js$">
  SetHandler application/x-httpd-php
  Header set Content-type "application/javascript"
</FilesMatch>
<FilesMatch "\.js$>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>

SetHandler应用程序/x-httpd-php
标题集内容类型“应用程序/javascript”
要防止缓存js文件,请编辑.htaccess文件

<FilesMatch "\.js$">
  SetHandler application/x-httpd-php
  Header set Content-type "application/javascript"
</FilesMatch>
<FilesMatch "\.js$>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>

好的,您现在要做的是:

将JSON对象回显到javascript变量中。唯一的问题是你用引号把它括起来了。所以这不是一根绳子

如果你看一下源代码,你会发现

<script type="text/javascript">
var arrayFromPHP = "[110,80,190,60,160,120,150,40,220,170,30,130,200,180,90,70,50,210,100,140]";
alert( $.toJSON(arrayFromPHP) );
</script>

var arrayFromPHP=“[110,80190,60160120150,40220170,3013020080,90,70,50210100140]”;
警报($.toJSON(arrayFromPHP));
你需要做的是

var arrayFromPHP = <?php echo json_encode($EP); ?>;
var arrayFromPHP=;
如果没有引号,您将得到一个完全限定的数组实例化,您可以使用它来工作

现在,如果您想将其作为JSON格式,请保持原样,无需使用jquery将其转换为JSON,因为它已经是一个JSON字符串。你可以直接通过

一切取决于你需要什么。JSON字符串或完全限定数组

如果选择保留引号以获得完全限定的数组,还可以通过对字符串执行
JSON.parse(arrayFromPHP)
将字符串转换为数组


因此,通往罗马的道路有很多条,这取决于您选择所需的选项。

可能的重复项您无法在js文件中运行php代码您无法在side js文件中获取php变量;在php文件和js文件中为全局javascript变量赋值。我不知道,谢谢!谢谢你的回复。如果你说“小心缓存”,考虑到我的知识有限,我有点犹豫要不要尝试一下..你可以在每次调用js文件时添加一个参数,每次调用时都创建一个新链接,如http://..../file.js?timestamp=Thank 你是迈克尔。如果我写var arrayFromPHP=;Netbeans说这是不正确的代码(需要一个操作数,但发现这是因为Netbeans需要javascript代码,可能无法处理嵌套的代码。如果它在.php文件中,php解析器将完成它的工作。只需运行它,让neatbeans关闭。