簡體   English   中英

AJAX jQUERY將POST中的數據傳遞給codeigniter控制器

[英]AJAX jQUERY to pass data in POST to codeigniter Controller

我想使用AJAX和Jquery以POST方法將數據傳遞給我的控制器。

看起來像這樣: https : //jsfiddle.net/10bhsd2o/我有bootstrap下拉列表,顯示數據庫中的記錄。

<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">
    <li ><a href="#"><?php

foreach($sites as $site)
{

echo "<li class='specialLink' id='$site->site_key'>".$site->site_key."</li>";
}?></a></li>

  </ul>
</li>

現在,我想將數據發送到控制器,即我從<li></li>標記的下拉列表中選擇的項目。

這是我的腳本:

   <script type="text/javascript">



    $( ".specialLink" ).click(function() {
        var value = this.id;

        var url= "<?php echo base_url('customer/dashboard/index') ?>"; 
        alert(url) 
         //get value for throw to controller
        alert(value);  

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


    </script>

生成HTML

<ul class="dropdown-menu">
    <li ><a href="#"><li class='specialLink' id='54th-65hy'>54th-65hy</li><li class='specialLink' id='HT45-YT6T'>HT45-YT6T</li></a></li>

  </ul>

調節器

public function index()
{

    var_dump($_POST);
    print_r($_POST);
    $this->data['subview'] = 'customer/dashboard/index';  
    $this->load->view('customer/_layout_main',$this->data);
}

現在我的警報是正確的,我在警報中獲取了正確的URL,在警報中獲取了正確的數據。

但是在我的控制器中,當我執行print_r($ _ POST); 我得到空白數組為什么? 我要去哪里錯了?

您只需更改Java語言,即可刪除$("#specialLink").submit(function(){});

 <script type="text/javascript">



$( ".specialLink" ).click(function() {
    var value = this.id;

    var url= "<?php echo base_url('customer/dashboard/index') ?>"; 
    alert(url) 
     //get value for throw to controller
    alert(value);  


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

});


</script>

更改您的html標記。 因為你在錨內循環

    <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>

然后更改您的click功能

    $( ".specialLink" ).click(function() {
        var value = this.id;
        var url= "<?php echo base_url('customer/dashboard/index') ?>"; 
        alert(url) 
         //get value for throw to controller
        alert(value); 
        $.ajax({ 
            type: "POST", //send with post 
            url: "<?php echo base_url('customer/dashboard/index') ?>", 
            data: {value:value}, 
            success:function(data){ 
            alert(data) 
            } 
        });
    });

我不知道您是否將index函數用於其他視圖但用於測試目的。 先嘗試一下

    public function index()
    {
        if(!empty($_POST)){
            var_dump($_POST);
            print_r($_POST);
        }else{
            $this->data['subview'] = 'customer/dashboard/index';  
            $this->load->view('customer/_layout_main',$this->data);
        }
    }

讓我知道您在第三個警報中得到了什么

$( ".specialLink" ).click(function() {
        var value = this.id;
        var url= "<?php echo base_url('customer/dashboard/index') ?>"; 
        alert(url) 
        alert(value); 
    $.post(url,{value:value},function(data){alert(data)});
  });

暫無
暫無

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

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