6

这是我的代码,当我单击提交按钮时,我想将带有 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 } ?>

这个语句 if(isset($_GET['var_PHP_data'])) 输出 false 然后显示 Hello World 我应该怎么做 isset($_GET['var_PHP_data']) 是真的?

4

5 回答 5

4

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

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

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

<?php
    if (isset($_GET['var_PHP_data'])) {
      回声 $_GET['var_PHP_data'];
    } 别的 {
    ?>
    <!DOCTYPE html>
    <html>
      <头部>
        <script 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',
                        类型:'GET',
                         数据:{ var_PHP_data:var_data },
                         成功:函数(数据){
                             // 做一点事;
                            $('#result').html(数据)
                         }
                     });
                 });
             });
        </脚本>
      </head>
      <正文>
        <input type="submit" value="Submit" id="sub"/>
        <div id="结果">
      </正文>
    </html>
    <?php } ?>
于 2013-05-08T07:18:29.097 回答
2

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

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

于 2013-05-08T07:05:04.623 回答
2

PassVariable.php 的内容是什么?如果在你拥有的地方相同,那么 jquery 位将不起作用,因为 php 将再次打印所有页面,如果文件不同,请尝试

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

                 }
于 2013-05-08T07:15:06.167 回答
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 错误并将其删除。

于 2013-05-08T07:03:16.190 回答
1

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

于 2013-05-08T06:58:54.153 回答