Как мне получить доступ к моей переменной PHP из JavaScript? - PullRequest
0 голосов
/ 30 марта 2011
  • Помеченные линии обозначают места, где может возникнуть проблема из-за недостатка знаний о том, как взаимодействуют HTML, JavaScript и PHP

Вот ситуация:

Я создаю игру, которая использует JavaScript, и я пытаюсь получить доступ к информации об игроке (имя игрока) из базы данных, используя PHP. Чтобы помочь мне отладить, я в настоящее время не пытаюсь получить доступ к базе данных. Прямо сейчас я просто помещаю переменную в файл PHP, чтобы представить информацию, к которой я буду пытаться получить доступ в будущем, строку, которая является именем игрока. Доступ к HTML-файлу, JavaScript-файлу и PHP-файлу осуществляется следующим образом:

* Все файлы хранятся на хостинге GoDaddy в одном каталоге с именами файлов:

index.html

milktruck.js

xml_http_request.php

.

Пользователь посещает веб-сайт, который получает доступ к файлу JavaScript, используя следующую строку кода:

    <script type="text/javascript" src="milktruck.js"></script>

Игра начинается, и пользователю предоставляется игровой интерфейс. На данный момент пользователь не указал вход в многопользовательский режим и, следовательно, строка кода JavaScript, которая обращается к переменной PHP и отображает, что она не запущена.

* Нигде в моем файле JavaScript или HTML-файле я не делаю ссылку на мой файл PHP, такую ​​как ссылка на файл JavaScript в файле HTML. Нужно ли ссылаться на файл PHP? Имеет ли смысл использование xml_http_request.php?

Я попытался добавить следующую строку кода в мой файл JavaScript:

    var simple = '<?php echo $simple; ?>';

и следующее в моем PHP-файле:

    $simple = 'simple string';

но когда я запускаю игру и нажимаю на многопользовательский режим, вместо строки 'simple string' отображается строка "php echo $ simple;" отображается (со всеми остальными символами, переполнение стека не позволяет мне положить его туда). JavaScript распознает этот код PHP как строку, а не строку кода.

Что здесь не так?

Вот ссылка на мою игру, если вы хотите убедиться в этом сами. Просто нажмите кнопку «многопользовательский режим» под экраном.

http://alterearth.net

Ответы [ 5 ]

2 голосов
/ 30 марта 2011

Итак, вы добавляете код php в файл .js?

Если это так, то сервер не будет распознавать тег, если <?php ?> не находится в файле .php. Это если вы не измените настройки сервера.

1 голос
/ 30 марта 2011

Вы можете заставить код PHP повторять код Javascript с переменной в нем.

Пример:

echo "<script> var x = $variable; </script>";

0 голосов
/ 30 марта 2011

Я вижу три возможных ответа:

1) вы можете настроить PHP так, чтобы он обращал внимание на файл .js, как говорит этот парень: http://www.geekhelpguide.com/php/handle-images-css-js-php-httpd-conf-using-htaccess/

или

2) создайте скрытую переменную в своем .php-файле следующим образом: <input id="myvariable" type="hidden" value="<?php echo $simple;?>">, а затем с помощью javascript создайте ссылку на скрытую переменную, например так (если вы используете jquery): $("#myvariable").val();

или

3) встраивание вашего javascript в ваш файл .php, как предлагали некоторые другие люди, давшие ответы.

Надеюсь, это поможет. Пожалуйста, отметьте как ответ, если это так.

0 голосов
/ 30 марта 2011

Drupal предлагает простой API для порта PHP-переменных для JS, посмотрите на drupal_add_js, если вы хотите, чтобы эта функция была более многоуровневой и гибкой.

0 голосов
/ 30 марта 2011

вы не можете встроить php в файл javascript, потому что файл javascript будет интерпретирован браузером, который ничего не знает о php .вместо этого вы должны поместить JavaScript в файл php.Например,

echo " userinfo = 'xxxxxxxxx' ";

, тогда вы можете получить объект userinfo в javascript.Вы можете сделать это, потому что php-файл создаст HTML, который будет интерпретироваться браузером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...