Я обращаюсь к этому вопросу: значение 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 'Я получаю значение:'. $ Мс; ?>