[英]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.