Вот часть моей функции Javascript:
var x=document.getElementById('DigitalFiles').rows[R].cells;
x[0].innerHTML= $_FILES['files']['name'][1] <<<< this $_FILES is not working !
Что синтаксис будет работать, пожалуйста.
Вот часть моей функции Javascript:
var x=document.getElementById('DigitalFiles').rows[R].cells;
x[0].innerHTML= $_FILES['files']['name'][1] <<<< this $_FILES is not working !
Что синтаксис будет работать, пожалуйста.
Переменная $ _FILES специфична для PHP, а не JS. Если вы хотите использовать JS, у вас появятся некоторые ограничения. Вы можете проверить обработку файлов HTML5 по этой ссылке http://www.html5rocks.com/en/features/file_access
Кажется, вы запутываете javascript с PHP или наоборот.
Чтобы установить x[0].innerHTML
до требуемого значения, вы могли бы использовать это:
x[0].innerHTML=<?php echo $_FILES['files']['name'][1]; ?>;
Или, если вы уже генерации яваскрипта кода непосредственно в PHP:
<?php
echo 'x[0].innerHTML="'.addslashes($_FILES['files']['name'][1]).'"';
?>
Вообще
Вы не можете перебирать массив PHP в javascript - если только вы не сделаете его содержимое доступным для javascript:
<script type="text/javascript">
var _arrayFromPhp=[<?php
implode(',', $_arrayInPhp);
?>];
</script>
Это будет работать, как правило, так что вы можете использовать _arrayFromPhp
в вашей яваскрипта среде. Этот довольно абстрактный пример также предполагает, что $_arrayInPhp
представляет собой массив только с одним уровнем.
Однако в частном случае $ _FILES это не имеет особого смысла, поскольку PHP заполняет массив $ _FILES файлами, которые загружаются клиентом. Я не могу придумать какой-либо целенаправленный способ обработки содержимого $ _FILES в javascript.
Если вы все равно хотите использовать его, вы можете это сделать так:
<script type="text/javascript">
var _arrayFromPhp=<?php
json_encode($_FILES);
?>;
</script>
После чего _arrayFromPhp
будет содержать представление $_FILES
в JavaScript.
Примечание
Если вы хотите как-то работать с ранее загруженными файлами в яваскрипта среде, вы должны сначала обработать загрузку в самом PHP (где $_FILES
приходит играть), а затем применить что-то вроде вышеупомянутого решения чтобы получить информацию из PHP в среду javascript.
Также обратите внимание, что $_FILES
будет содержать только что-либо, если скрипт вызывается непосредственно через процесс загрузки. Если вы загружаете файлы, а затем перезагружаете страницу (например), то $_FILES
будет пустым.
Подсказка
В случае, если вы используете обычную форму загрузки, пожалуйста, убедитесь, что ваша форма установлена на правильный тип кодирования (с помощью атрибута ENCTYPE):
<form method="post" enctype="multipart/form-data">
</form>
Это отличный ответ[email protected] user3063795 Проверьте приведенное ниже объяснение относительно различий между PHP и JS в этой среде. –
Позвольте мне просто развернуть разницу между PHP
и Javascript
(в этом контексте).
Это упрощенный поток;
Клиент (ваш или чужой браузер) запрашивает сайт на myURL.com. Это запрашивает ваш сервер (например, LAMP
) и Apache
направляет этот запрос в нужное место, а на вашем сервере выполняется PHP
, и это создает HTML
. Но на самом деле этот «HTML» - просто простая строка. PHP не знает, что такое HTML, или что-то в этом роде, и когда вы эхом или печатаете и т. Д. HTML из PHP, PHP просто думает об этом как о строке.
PHP
обладает способностью взаимодействовать с database
(M в LAMP, для MySQL
- в этом воображаемом случае), а также некоторые серверные переменные ($_SERVER
и $_POST/GET
). Как только все PHP
выполняет и создает ваш HTML, он отправляет этот HTML-код в виде простой строки в клиентский браузер.
Браузер получает эту строку, а затем начинает интерпретировать ее как HTML. Он читает HTML и начинает загружать ваши активы, такие как файлы javascript, файлы CSS
, изображения и т. Д. И т. Д. И начинает все это вместе. Таким образом, ваш файл javascript читается и выполняется, и CSS начинает стилизовать HTML. Javascript может продолжать работать на клиенте или запускаться для запуска определенных функций с помощью определенных событий (щелчок, выбор времени, прокрутка и т. Д.).
Как вы можете видеть, у клиента нет доступа к запущенному PHP. Все PHP запускается на сервере и возвращает строку. Все, что делает клиент, - это просто выполнить Javascript.
Теперь, когда дело обстоит немного лучше, вы можете начать использовать AJAX
. AJAX - это комбинация технологий (асинхронный JavaScript и XML), который используется для запросов на серверы без перезагрузки или перенаправления клиента на новую страницу. Это означает, что вы можете иметь своего клиента на myURL.com и сделать запрос AJAX на myURL.com/myAJAXHandler.php. Клиент остается на myURL.com, однако сервер в основном видит, что клиент пытается получить доступ к странице myURL.com/myAJAXHandler.php в браузере. Сервер делает свою обычную вещь, запускает все, что находится на этом адресе PHP, и снова возвращает простую строку клиенту. Клиент, использующий Javascript, получает эту строку и может делать с ней что угодно, что обычно обновляет текущую страницу (по-прежнему myURL.com) или любое количество вещей.
Это упрощенное объяснение, и я многое изложил и обобщил много, но я просто пытаюсь дать вам общее представление о том, что происходит.
Надеюсь, это помогло.
Синтаксис не будет работать. JavaScript полностью выполняется на клиенте и не знает «$ _FILES». Что вы пытаетесь сделать с этим? –
Ваш js встроен в файл php? – bagonyi
Если вы пытаетесь получить имя файла из ввода формы, это было бы легче сделать с атрибутом 'value =' ввода. –