簡體   English   中英

如何在PHP中從AJAX POST發送數據?

[英]How to get data sent from AJAX POST in PHP?

我正在嘗試使用AJAX & JQUERY獲取POST數據

我有一個bootstrap下拉列表,其中我顯示了數據庫中的一些值。 我想將我選擇的項目作為POST傳遞給我的PHP。

我的下拉是這樣的:

<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Your Sites <span class="caret"></span></a>
  <ul class="dropdown-menu">
    <?php
      foreach($sites as $site)
      {
        echo "<li class='specialLink' id='".$site->site_key."'><a href='#'>".$site->site_key."</a></li>";
      }
    ?>
  </ul>
</li>

現在我的問題是,當我在PHP中回顯POST值時,我什么也得不到,而如果我從ajax提醒數據,那么它會顯示正確的值。

此外,如果我打開我的瀏覽器控制台,可以看到我在網絡 - > XHR選項卡中選擇的值。

<script type="text/javascript">

$( ".specialLink" ).click(function() {
    var site = this.id;
    console.log(site);
    var url= "<?php echo base_url('customer/dashboard/index') ?>"; 

     //get value for throw to controller

    $.ajax({ 
        type: "POST", //send with post 
        url: "<?php echo base_url('customer/dashboard/index') ?>", 
        data: {site:site}, 
        success:function(data){ 

        },

    });
});

試圖在PHP中獲取這樣的值:

 if(!empty($_POST))
    {
       //$site = $_POST['site'];

        echo $this->input->post('site');
       //$this->session->set_userdata('site', $site);
    }

在Console中我可以看到如下選擇的項目: 圖片

Request URL:http://127.0.0.1/bizrtc/customer/dashboard/index
Request Method:POST
Status Code:200 OK
Form Data
view source
view URL encoded
site:HT45-YT6T

嘗試更改下拉代碼,看看它是否有效:

<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Your Sites <span class="caret"></span></a>
  <ul class="dropdown-menu">
    <?php
      foreach($sites as $site)
      {
        echo "<li class='specialLink' data-id='".$site->site_key."' id='".$site->site_key."'><a href='#'>".$site->site_key."</a></li>";
      }
    ?>
  </ul>
</li>

你的JS代碼:

<script type="text/javascript">

    $( ".specialLink" ).click(function() {
//        var site = this.id;
          var site = $(this).attr('data-id').val; 
        console.log(site);
        var url= "<?php echo base_url('customer/dashboard/index') ?>"; 

         //get value for throw to controller

        $.ajax({ 
            type: "POST", //send with post 
            url: "<?php echo base_url('customer/dashboard/index') ?>", 
            data: {site:site}, 
            success:function(data){ 

            },

        });
    });

嘗試創建一個簡單的div:

<div id="test"></div>

做一個echo json_encode

if($_REQUEST['function'] == 'function_site')
    {
       $site = $_POST['site'];
       //$this->session->set_userdata('site', $site);
       $response['site'] = $site;

       echo json_encode($response);

    }

並將你的ajax結果附加到他:

$.ajax({ 
        type: "POST", //send with post 
        url: "<?php echo base_url('customer/dashboard/index') ?>", 
        data: {site:site, function:function_site},
        dataType: 'json',
        success:function(data){ 
           $("#test").html(data.site);
        },

    });

我現在沒有環境來測試你,但是你應該看看你現在正在回應什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM