Intereting Posts
PHP для заполнения всех букв (в том числе после косой черты), за исключением определенных слов PHP post_max_size переопределяет upload_max_filesize Внутренняя ошибка произошла во время: «PHP CodeSniffer». в zend studio 10.0 Заменить текст гиперссылками, в которых еще нет Очень нелогичные сравнения значений php Прекратить отправку данных из разных доменов PHP Нужно ли использовать токен доступа в API Facebook? Ошибка BigCommerce OAuth «Недопустимая область действия» почему php trim не действительно удаляет все пробелы и разрывы строк? Laravel 5.2 Пробный тест загрузки загруженного файла Что представляет собой символ серьезного акцента (`) (а не одинарная кавычка) в PHP? .htaccess доступен только через ip PHP: загрузка нескольких фотографий с использованием <input type = 'file'> с тем же именем Замените подстроку, которая находится между квадратными скобками с помощью php regex Переопределить класс методов или классов

Передать javascript-переменную в php-код

im пытается передать переменную из javascript в строку PHP, включая код для создания более динамичного скрипта. Но до сих пор мне этого не удалось.

Логика такова:

Посмотрев ниже код – я хочу заменить «textfile.txt» на переменную javascript.

descrip2.innerHTML = "<?php include('textfile.txt'); ?>"; 

показывать:

 var thisfile = [userinput]; descrip2.innerHTML = "<?php include(thisfile); ?>"; 

Любые идеи о том, как достичь этого? Я знаю, что я пытаюсь присоединиться к сценариям на стороне клиента на стороне сервера, но разве это невозможно сделать так, как я пытаюсь? Может быть, с несколькими хитростями? Я не хочу писать сотни php-скриптов для чего-то, что должно быть настолько интуитивным и простым … 🙁 нет, если я могу избежать этого …

Если бы я понял ваш вопрос, вы не можете так поступать.

вы можете пойти с ajax-запросом. Если вы используете jquery, вы можете сделать следующее:

 var thisfile = [userinput]; $(descrip2).load(thisfile); 

или сделать запрос ajax самостоятельно ..

если ваш файл является простым html-текстом, вы можете сделать это с помощью функции file_get_contents (), которая возвращает содержимое файла:

 descrip2.innerHTML = "<?php echo file_get_contents('textfile.txt'); ?>"; 

Если вы хотите использовать это много раз, вы можете закодировать его (base64) и загрузить его в форму для скрытого ввода, например. Затем вы сможете повторно использовать это много раз (без вызова ajax каждый раз).

Сценарии на стороне сервера всегда будут выполняться и визуализироваться перед сценарием на стороне клиента, поэтому, когда вы пишете свой код, помните об этом

Я использую jQuery, но вы можете использовать обычный javascript.

 <div id="#welcomeMessage"></div> $('#welcomeMessage').html("<?php echo 'hello'?>"); 

если используется javascript

 document.getElementById('welcomeMessage').innerHTML = "<?php echo 'hello'?>"; 

Я уверен, что это тоже сработает

 document.getElementById('welcomeMessage').innerHTML = "<?php include_once('textfile.php'); ?>"; 

Пока ваш php-файл действительно выводит что-то.

ОБНОВИТЬ:

От вашего вопроса и от того, что вы говорите в комментарии. Я предполагаю, что у вас есть такой сценарий:

  1. у вас есть файл с некоторой информацией.
  2. вы хотите заполнить свой div информацией.

поэтому перед тем, как продолжить, создайте хорошо отформатированный файл для хранения всей информации. пример

  • data.xml
 <?xml version="1.0" encoding="UTF-8"?> <data> <div> <h2>lorem ipsum</h2> <p>brown fox jump hover the lazy dog</p> </div> <div> <h2>lorem ipsum 1</h2> <p>brown fox jump hover the lazy dog 1</p> </div> </data> 

затем используйте AJAX для загрузки содержимого и добавления его в требуемый элемент, как показано ниже.

 <html> <head> <title></title> <script> var descriptor; function init() { descriptor = document.getElementById("descriptor"); loadFromFile('data.xml'); } function loadFromFile(thisfile) { var xmlhttp; if(window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { var data = xmlhttp.responseXML.documentElement.getElementsByTagName('div'); var divs = ''; for(var i = 0; i < data.length; i++) { var div = data[i]; divs += '<div>'; divs += '<h2>' + div.getElementsByTagName('h2')[0].firstChild.nodeValue + '</h2>'; divs += '<p>' + div.getElementsByTagName('p')[0].firstChild.nodeValue + '</p>'; divs += '</div>'; } descriptor.innerHTML = divs; } } xmlhttp.open("GET", thisfile, true); xmlhttp.send(); } </script> </head> <body onload="init()"> <div id="descriptor"></div> </body> </html> 

Попробуй это :

 var thisfile = [userinput]; descrip2.innerHTML = "<?php include("+thisfile+"); ?>"; 

Хотя я не уверен, что это то, что нужно …