【问题标题】:Ajax PHP Jquery - echo-ing back dataAjax PHP Jquery - 回显数据
【发布时间】:2011-11-25 06:57:28
【问题描述】:

我无法从我的 PHP 文件中恢复数据。我想我不太了解这个 jquery 函数的 data 参数,所以我只是去了一些教程。

jQuery

$.ajax(
    {
        url: 'test.php',
        dataType: 'text',
        data: {test: '1'},
        success: function(data)
        {
            window.alert(data);
        }
    })

现在,据我了解,test: 声明了 php 中使用的变量,1 是该变量中的值。但我不完全确定...

这是我的 PHP

$item1 = $_POST['test'];

    echo $item1;

现在它只是应该提醒那个值,所以我知道它至少返回了一些东西,但在提醒中它只是空白,所以我在某处丢失了值,但是在哪里?

【问题讨论】:

    标签: php javascript jquery ajax


    【解决方案1】:

    使用$_REQUEST 它将同时处理GETPOST

    $item1 = $_REQUEST['test'];
    

    默认ajax请求是GET类型,或者明确指定typelike

    $.ajax(
        {
            url: 'test.php',
            type:'POST'
            dataType: 'text',
            data: {test: '1'},
            success: function(data)
            {
                window.alert(data);
            }
        })
    

    或使用$_GETlike

    item1 = $_GET['test'];
    
        echo $item1;
    

    【讨论】:

    • awwww 男人一直盯着我的脸。很高兴知道默认情况下它是 GET 。谢谢!
    【解决方案2】:

    正确方法:

    <?php
    $change = array('key1' => 'blabla', 'key2' => '12432rr424234');
    echo json_encode($change);
    ?>
    

    然后是jquery脚本:

    <script>
    $.get("location.php", function(data){
      var mydata= $.parseJSON(data);
      var art1 = mydata.key1;  // <-----------  access the element
    });
    </script>
    

    【讨论】:

      【解决方案3】:

      这对我有用

      ajax 代码

      <html>
          <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
              <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
              <title>Test Page</title>
              <script>
                  $.ajax(
                          {
                              url: 'test.php',
                              type: 'POST',
                              dataType: 'text',
                              data: {latitude: '7.15588546', longitude: '81.5659984458'},
                              success: function (response)
                              {
                                  alert(response);
                              }
                          });
              </script>
          </head>
          <body>
          </body>
      </html>
      

      php代码(test.php)

      <?php
      
      $lat = $_REQUEST['latitude'];
      $lon = $_REQUEST['longitude'];
      
      echo 'latitude- '.$lat . ', longitude- ' . $lon;
      ?>
      

      【讨论】:

        【解决方案4】:

        添加 POST 方法:

        $.ajax(
            {
                url: 'test.php',
                dataType: 'text',
                type: 'post',
                data: {test: '1'},
                success: function(data)
                {
                    window.alert(data);
                }
            })
        

        【讨论】:

          【解决方案5】:

          您忘记将用于将数据发送到您的 php 文件的方法 POST/GET。

          $.ajax(
              {        
                  type:'POST',        
                  url: 'test.php',
                  dataType: 'text',
                  data: {test: '1'},
                  success: function(data)
                  {
                      window.alert(data);
                  }
              })
          

          【讨论】:

            【解决方案6】:
             just add "type" POST or GET     
            
             //example
             $.ajax(
            {
                url: 'test.php',
                type: 'POST',
                data: {test: '1'},
                success: function(data)
                {
                    window.alert(data);
                }
            })
            

            【讨论】:

              【解决方案7】:

              如果您试图从 php 文件中获取信息,我认为数据字段不是必需的。这是我所拥有的。

                              $.ajax(
                              {
                                  url: 'response.php',
                                  type: 'get',
                                  dataType:'text',
                                  success: function(data){
                                      window.alert(data);
                                  }
                              }
              

              就 php 而言..

              <?php
                 echo "1";
                 echo "2";
                 echo "3";
                 echo "4";
                 echo "5";
                 echo "6";
                 echo "7";
                 echo "8";
              ?>
              

              Alert box on execution

              【讨论】:

                【解决方案8】:

                在这方面苦苦挣扎了一段时间,我的问题不在 js 上,而是在 php 脚本中:错误报告设置为 E_ALL - 这显然会阻止它将数据返回到 AJAX 调用。我的猜测是它会在最终回声之前打印通知并将其全部屏蔽。奇怪的是,它没有在我设置的日志中打印出任何通知以查明真相。

                将其更改为 E_ERROR,现在就像一个魅力。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多