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

时间:2013-05-08 06:55:50

标签: php javascript 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>

这是源代码

 <?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做什么($ _ GET ['var_PHP_data'])是真的?

5 个答案:

答案 0 :(得分:4)

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

  1. 检查是否设置了var_PHP_data var(在PHP中,在服务器上)。
  2. 如果是,请发送包含该数据的空白文本回复。
  3. 如果不是,则绘制表格和其他所有内容。
  4. 在表单中,我创建了一个#result div。
  5. Ajax响应将显示在此div中。
  6. 还要确保您在localhost上托管脚本,并将其命名为test.php。要确保它具有弹性,您可以将Ajax URL更改为 <?php echo $_SERVER['PHP_SELF'];?>以确保您能够找到正确的脚本。

    <?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.5/jquery.min.js">
            <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 } ?>
    

答案 1 :(得分:2)

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

对于你的问题:尝试没有域名的网址,添加标签'表单',更改事件点击提交,添加数据类型

答案 2 :(得分:2)

Pass Variable.php的内容是什么?如果你有他们的jquery位不会工作相同cuz php将再次打印所有页面,如果文件不同尝试

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

                 }

答案 3 :(得分:1)

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

答案 4 :(得分:1)

$(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错误并将其删除。