Доступ к переменным javascript в файле php сервера через браузер javascript

#javascript #text

#javascript #текст

Вопрос:

использование кода javascript в браузере для доступа к переменной javascript в файле php сервера (файл php выполняет поиск в текстовом файле и возвращает результат в виде переменной php, затем я устанавливаю эту переменную php в качестве переменной javascript)

 //php file on server called data.php
<?php
$search = 'bing';
 // Read from file
 $lines = file('text.txt');

 $linea='';
foreach($lines as $line)
  {
  // Check if the line contains the string we're looking for, and print if it does
  if(strpos($line, $search) !== false) {
  $liner=explode(': ',$line);
  $linea.= $liner[1];
  }

  }

  echo 'Search returned: '. $linea;

 <script type="text/javascript">
            var varxxx = $linea;
            </script>


?>


//text file on server
foo: bar
el: macho
bing: bong
cake color: blue berry
mayo: ello



//Java script code in browser. 

var xhr = new XMLHttpRequest();
xhr.open("GET","http://.........data.php",false);
xhr.send(null); 
$Variables.setValue(5, 'varxxx');
  

Я получил
ошибка ссылки
x не определен

если я просто запущу http://………data.php , он показывает, что поиск возвращен: «Bong» это означает data.php успешно вернул результат, и php $ linea является Bong.

итак, эта часть ниже в файле php является причиной ошибки?

  <script type="text/javascript">
            var varxxx = $linea;
            </script>
  

или что-то не так с моим кодом Javascript в браузере?

Приветствуется любая помощь, заранее спасибо

Ответ №1:

Попробуйте «повторить» тег script в теле .html. Вы получаете эту ошибку, потому что переменная создается только на стороне сервера, вот почему переменная не определена. Также я рекомендую вам использовать let вместо var, let более безопасен с точки зрения области видимости.

  //php file on server called data.php
<?php
$search = 'bing';
 // Read from file
 $lines = file('text.txt');

 $linea='';
foreach($lines as $line)
  {
  // Check if the line contains the string we're looking for, and print if it does
  if(strpos($line, $search) !== false) {
  $liner=explode(': ',$line);
  $linea.= $liner[1];
  }

  }

  echo 'Search returned: '. $linea;

?>

// New script
<?php
   echo("<script> var varxxx = ".$linea." </script>")
?>