繁体   English   中英

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

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

这是我的代码,我想将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'])是真的吗?

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

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

还要确保您在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 } ?>

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

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

PassVariable.php的内容是什么? 如果是相同的你在哪里他们jquery位不会工作coz 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错误并将其删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM