Передача переменной javascript в PHP

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