使用ajax将javascript变量传递给php,结果不会;我什么也不展示

Pass javascript variable to php with ajax and the result doesn't show anything

本文关键字:什么 结果 javascript ajax 变量 php 使用      更新时间:2023-09-26

这是我的代码,当我点击提交按钮时,我想将带有ajax的javascript变量传递给php,结果没有显示javascript中的var_data变量。什么代码错了?这是在大家帮我之前编辑订单

 <!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 } ?>

如果(isset($_GET['var_PHP_data']((输出false,然后显示Hello World我应该为isset做什么?

您的解决方案存在PHP问题:您不检查数据是否存在,也不处理结果。我修改了脚本以执行以下操作:

  1. 检查是否设置了var_PHP_data var(在PHP中,在服务器上(
  2. 如果是,只需发送一个包含该数据的空白文本响应
  3. 如果没有,则绘制表单和其他所有内容
  4. 在表单中,我创建了一个#resultdiv
  5. Ajax响应将显示在这个div中

还要确保您在localhost上托管该脚本,并且它被称为test.php。为了确保这是有弹性的,您可以将Ajax URL更改为<?php echo $_SERVER['PHP_SELF'];?>,以确保您将命中正确的脚本。

<?phpif(isset($_GET['var_PHP_data'](({echo$_GET['var_PHP_data'];}其他{?><!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="你好世界";$.ajax({url:'http://localhost/test.php',类型:"GET",数据:{var_PHP_data:var_data},成功:函数(数据({//做某事;$('#result'(.html(数据(}});});});<脚本><头部><身体><input type="submit"value="submit"id="sub"/><div id="result"><身体><html><?php}?>

试试jQuery Form,这将有助于解决许多问题。

对于您的问题:尝试不带域名的url,添加标签"表单",更改事件点击提交,添加数据类型

PassVariable.php的内容是什么?如果是相同的地方,他们jquery位不会工作,因为php将再次打印所有页面,如果文件不同,请尝试

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

尝试将您的输入放入表单中,并将ajax调用附加到表单onsubmit事件。在提供的发生中,它的发生方式是当您单击字段时,在这种情况下,它会在您真正编写任何内容之前提交。

$(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中放入

制作按钮

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

它应该起作用,因为它是一个非常基本的例子。如果它不起作用,请检查控制台是否存在任何JavaScript错误并将其删除。