使用ajax将javascript变量传递给php,结果不显示任何内容

Mon*_*Got 6 javascript php ajax

这是我的代码,我想将javascript变量与ajax传递给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>
Run Code Online (Sandbox Code Playgroud)

这是源代码

 <?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 } ?>
Run Code Online (Sandbox Code Playgroud)

这个语句if(isset($ _ GET ['var_PHP_data']))输出false然后显示Hello World我该怎么做才能为isset做什么($ _ GET ['var_PHP_data'])是真的吗?

Zla*_*tko 4

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

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

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

<?php
    if (isset($_GET['var_PHP_data'])) {
      回声 $_GET['var_PHP_data'];
    } 别的 {
    ?>
    <!DOCTYPE html>
    <html>
      <头>
        <脚本src =“http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js”>
        <脚本>
            $(文档).ready(函数() {
                $('#sub').click(function() {
                    var var_data = "你好世界";
                    $.ajax({
                        url: 'http://localhost/test.php',
                        类型:'获取',
                         数据:{ var_PHP_data:var_data },
                         成功:函数(数据){
                             // 做一点事;
                            $('#result').html(数据)
                         }
                     });
                 });
             });
        </脚本>
      </头>
      <正文>
        <input type="提交" value="提交" id="sub"/>
        <div id="结果">
      </正文>
    </html>
    <?php } ?>