以下是我的Javascript功能的一部分:
var x=document.getElementById('DigitalFiles').rows[R].cells;
x[0].innerHTML= $_FILES['files']['name'][1] <<<< this $_FILES is not working !
请使用什么语法。
答案 0 :(得分:1)
看起来你混淆了PHP和PHP,反之亦然。
要将x[0].innerHTML
设置为所需的值,您可以使用:
x[0].innerHTML=<?php echo $_FILES['files']['name'][1]; ?>;
或者,如果您已经在PHP中直接生成javascript代码:
<?php
echo 'x[0].innerHTML="'.addslashes($_FILES['files']['name'][1]).'"';
?>
<强>一般强>
你不能在javascript中循环访问PHP数组 - 除非你首先使它的内容可用于javascript:
<script type="text/javascript">
var _arrayFromPhp=[<?php
implode(',', $_arrayInPhp);
?>];
</script>
这通常会起作用,因此您可以在javascript环境中使用_arrayFromPhp
。这个相当抽象的例子还假设$_arrayInPhp
是一个只有一个级别的数组。
但是,在$ _FILES的特定情况下,这没有多大意义,因为PHP使用客户端上载的文件填充$ _FILES数组。我想不出任何有目的的方法来处理javascript中$ _FILES的内容。
无论如何你想要使用它,你可以这样做:
<script type="text/javascript">
var _arrayFromPhp=<?php
json_encode($_FILES);
?>;
</script>
之后_arrayFromPhp
将在javascript中包含$_FILES
的表示。
注意强>
如果您想以某种方式使用以前在javascript环境中上传的文件,您应首先使用PHP本身处理上传($_FILES
开始播放),然后应用上述解决方案之类的内容来获取您的信息从PHP进入你的javascript环境。
另请注意,如果通过上传过程直接调用脚本,$_FILES
将只包含任何内容。如果您上传文件然后重新加载页面(例如),则$_FILES
将为空。
<强>提示强>
如果您使用的是传统的上传表单,请确保您的表单设置为正确的编码类型(通过设置属性 enctype ):
<form method="post" enctype="multipart/form-data">
</form>
答案 1 :(得分:0)
$ _FILES变量特定于PHP而不是JS。如果你想使用JS,你将有一些限制要处理。您可以在此链接http://www.html5rocks.com/en/features/file_access
查看一些HTML5文件处理答案 2 :(得分:0)
我只想扩展PHP
和Javascript
之间的区别(在此上下文中)。
这是一个简化的流程;
客户(您或他人的浏览器)在myURL.com上请求该网站。此请求会命中您的服务器(例如LAMP
堆栈)并Apache
将此请求路由到正确的位置,并在您的服务器上执行PHP
,这将生成HTML
。但实际上,这个“HTML”只是一个简单的字符串。 PHP不知道HTML是什么,或者它是什么,当你从PHP回显或打印等HTML时,PHP只是把它想象成一个字符串。
PHP
能够与database
(LAMP中的MySQL
中的M - 在这个假想的情况下)以及一些服务器变量($_SERVER
和{进行交互{1}})。所有$_POST/GET
执行并创建HTML后,它会将此HTML作为简单字符串发送到客户端浏览器。
浏览器获取此字符串,然后开始将其解释为HTML。它会读取HTML并开始下载您的资源,如javascript文件,PHP
文件,图像等,并开始将所有这些结合在一起。因此,您的javascript文件将被读取并执行,并且CSS开始为HTML设置样式。 Javascript可以继续在客户端上运行,也可以通过某些事件(点击,计时,滚动等)触发运行某些功能。
如您所见,客户端无法运行PHP。所有PHP都在服务器上运行,并返回一个字符串。所有客户端都是简单地执行Javascript。
现在,随着事情变得更加先进,您可以开始使用CSS
。 AJAX是一种技术组合(异步JavaScript和XML),用于向服务器发出请求,而无需重新加载或将客户端重定向到新页面。这意味着您可以让您的客户在myURL.com并向myURL.com/myAJAXHandler.php发出AJAX请求。客户端留在myURL.com,但服务器基本上看到客户端试图访问浏览器中的myURL.com/myAJAXHandler.php页面。服务器正常运行,运行该地址的PHP,并再次向客户端返回一个简单的字符串。使用Javascript的客户端获取此字符串并可以使用它执行所需的操作,通常更新当前页面(仍为myURL.com)或任何数量的内容。
这是一个简化的解释,我已经留下了很多东西并且已经概括了很多,但我只是想让你大致了解会发生什么。
希望这有帮助。