Я обращаюсь к этому вопросу: значение Javascript для PHP с помощью JQuery
Я попытался использовать код ниже в файле с именем a.php:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <script type="text/javascript"> var ms = 9000; function test() { $.ajax({ url: "a.php", data: {"test":ms}, type: 'get', success: function(output) { $('#testing').html(output); } }); } test(); </script> <?php $ms = $_GET["test"]; echo "I am getting below value:"; echo $ms; ?>
Затем я указываю браузер на http: //localhost/learn/a.php, но получилось сообщение об ошибке & значение $ ms не показано, как ожидалось:
(!) Примечание: Неопределенный индекс: тест в C: \ wamp \ www \ learn \ a.php в строке 17
$ ms = $ _GET ["test"]; <- Строка 17 в a.php
Я попробовал еще один более простой код (b.php) ниже:
<script src="js/jquery.min.js"></script> <script type="text/javascript"> var ms = 3000; $.get("http://localhost/learn/b.php", { "test": ms } ); </script> <?php $ms = $_GET["test"]; echo $ms; ?>
Затем я указываю браузер на http: //localhost/learn/b.php, но получил аналогичное сообщение об ошибке и не отображается значение $ ms:
(!) Примечание: Неопределенный индекс: тест в C: \ wamp \ www \ learn \ b.php в строке 7 Ниже приведен код строки 7 $ ms = $ _GET ["test"];
Пожалуйста посоветуй. Благодарю.
Хорошо, глядя на этот код:
<script src="js/jquery.min.js"></script> <script type="text/javascript"> var ms = 3000; $.get("http://localhost/learn/b.php", { "test": ms } ); </script> <?php $ms = $_GET["test"]; echo $ms; ?>
Я предполагаю, что все это в одном файле. У вас есть два бита кода на двух разных языках, которые интерпретируются в разных местах. Во-первых, у вас есть Javascript наверху. Это не интерпретируется вашим сервером. Он возвращается браузеру так же, как HTML.
Позже у вас есть часть PHP. Мы все еще находимся на сервере и еще ничего не отправили в браузер. Вы ищете значение $_GET['test']
. Ваш URL-адрес был http://localhost/learn/b.php
: явно нет значений GET в этом URL-адресе, следовательно, ошибка.
Когда ваш код отправляется в браузер, браузер видит строку $.get
и выполняет запрос AJAX. Это еще один HTTP-запрос. Он не изменяет первоначальный запрос, поэтому он не уменьшает полученную выше ошибку. С помощью этого запроса ваш браузер отправит на сервер http://localhost/learn/b.php?test=3000
, и не будет ошибки. Однако, поскольку вы ничего не делаете с ответом, вы не видите последствия этого второго запроса.
Возможно, с этим URL-адресом вам нужно уточнить параметр GET «test» в URL-адресе
HTTP: //localhost/learn/a.php тест = привет
Когда вы делаете запрос с XHR, вы не просто получаете доступ к странице с новым запросом, а значение все еще существует (HTTP не имеет статуса ).
Вам нужно что-то сделать в обратном вызове с помощью jQuery.
Похоже, вы сбиваете с толку, где вы должны разместить свой Javascript и PHP. Ваш PHP-файл должен просто иметь логику получения и использования переменной Javascript, а не самого Javascript. Поэтому вам необходимо разделить эту логику.
В вашем файле HTML:
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"> </ script> <Скрипт> $ (функция () { var ms = 3000; $ .ajax ({ url: 'a.php', данные: {test: ms}, success: function (response) { . $ ( '# Тестирование') HTML (ответ); } }); }); </ Скрипт>
В вашем файле PHP (a.php);
<? PHP $ ms = $ _GET ['ms']; echo 'Я получаю значение:'. $ Мс; ?>