Передать javascript переменную в php с помощью ajax, и результат ничего не показывает

Это мой код, и я хочу передать переменную javascript с помощью ajax для php, когда я нажму кнопку «Отправить», тогда результат не отображает переменную var_data из javascript. Какой код неправильный? Это порядок редактирования, прежде чем все мне помогут

<!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script> $(document).ready(function() { $('#sub').click(function() { var var_data = "Hello World"; $.ajax({ url: 'http://localhost/ajax/PassVariable.php', type: 'GET', data: { var_PHP_data: var_data }, success: function(data) { // do something; } }); }); }); </script> </head> <body> <input type="submit" value="Submit" id="sub"/> <?php $test = $_GET['var_PHP_data']; echo $test; ?> </body> </html> 

и теперь это исходный код

  <?php if (isset($_GET['var_PHP_data'])) { echo $_GET['var_PHP_data']; } else { ?> <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> <script src="http://malsup.github.com/jquery.form.js"></script> <script> $(document).ready(function() { $('#sub').click(function() { var var_data = "Hello World"; $.ajax({ url: 'http://localhost/test.php', type: 'GET', data: { var_PHP_data: var_data }, success: function(data) { // do something; $('#result').html(data) } }); }); }); </script> </head> <body> <input type="submit" value="Submit" id="sub"/> <div id="result"> </body> </html> <?php } ?> 

этот оператор if (isset ($ _ GET ['var_PHP_data']) выводит false, а затем показывает Hello World. Что я должен делать для isset ($ _ GET ['var_PHP_data'])?

В вашем решении есть проблемы с PHP: вы не проверяете наличие данных, а также ничего не делаете с результатом. Я изменил скрипт, чтобы сделать следующее:

  1. Проверьте, установлен ли var_PHP_data var (в PHP, на сервере).
  2. Если да, просто отправьте пустой текстовый ответ, содержащий эти данные.
  3. Если нет, то нарисуйте форму и все остальное.
  4. В форме я создал div #result .
  5. Ответ Ajax будет показан в этом div.

Также убедитесь, что вы размещаете скрипт на localhost и что он называется test.php. Чтобы убедиться, что это устойчиво, вы можете изменить URL-адрес Ajax на <?php echo $_SERVER['PHP_SELF'];?> Чтобы убедиться, что вы нажмете правильный скрипт.

 <? PHP
     if (isset ($ _ GET ['var_PHP_data'])) {
       echo $ _GET ['var_PHP_data'];
     } else {
     ?>
     <! DOCTYPE html>
     <HTML>
       <Голова>
         <script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js">
         <Скрипт>
             $ (document) .ready (function () {
                 $ ('# sub'). click (function () {
                     var var_data = "Hello World";
                     $ .ajax ({
                         url: 'http: //localhost/test.php',
                         type: 'GET',
                          данные: {var_PHP_data: var_data},
                          успех: функция (данные) {
                              // сделай что-нибудь;
                             $ ( '# Результат'). HTML (данные)
                          }
                      });
                  });
              });
         </ Скрипт>
       </ HEAD>
       <Тело>
         <input type = "submit" value = "Submit" id = "sub" />
         <div id = "result">
       </ Body>
     </ Html>
     <? php}?>

Попробуйте jQuery Form, это поможет решить многие проблемы.

Для вас вопрос: попробуйте url без доменного имени, добавьте форму тегов, измените событие нажмите, чтобы отправить, добавить тип данных

Каково содержимое PassVariable.php? если это то же самое, где у вас есть jquery bit wont work coz php снова распечатает всю страницу, если файл отличается от другого

 success: function(data) { alert('databack = '+ data); } 

Попробуйте ввести свой ввод в форму и приложите вызов ajax к форме onsubmit event. То, как это происходит при условии, происходит, когда вы нажимаете в поле, и в этом случае оно отправляется, прежде чем вы сможете что-либо написать.

 $(document).ready(function() { $('#brn').click(function() { var var_data = "Hello World"; alert("click works"); $.ajax({ url: 'http://localhost/ajax/PassVariable.php', type: 'GET', data: { x: var_data }, success: function(data) { alert(data); } }); }); }); 

измените его на этот код

затем в PassVariable.php put

сделать кнопку

 <input type="button" id="btn" value="click me" /> 

он должен работать, потому что это очень простой пример. Если он не работает, проверьте свою консоль, если есть ошибки JavaScript и удалите их.