CI控制器中的ajax传递的多个参数不起作用

时间:2016-06-02 09:15:48

标签: php jquery ajax .htaccess codeigniter

当我在ajax调用CI控制器时传递两个参数时,值在实时服务器中显示为null。但是如果我发送一个参数它工作正常。在本地服务器中一切正常。

Ajax代码

<script type="text/javascript">
$(document).ready(function () {
$("#searchoption").keyup(function ()
{

var searchdata = $(this).val();
//alert(searchdata);
$.ajax({
url: BASE_URL + 'somajsebadmin/somajsebadmin_dashboard/search_muktijuddha_vatha_information',
type: 'POST',
 data: 'searchvalue=' + searchdata + '&table_name=' + 'muktijuddha_vatha_application',
beforeSend: function() {
// setting a timeout
$('#loader').show();
},
success: function (data) {
$('#loader').hide();
$("#searchdata").html(data);
}
});

});
});
</script>

我的控制器方法代码

public function search_muktijuddha_vatha_information() {

//     header('Content-Type: application/json');


if ($this->input->is_ajax_request()) {

$searchvalue = $this->input->post('searchvalue');
$tableName = $this->input->post('table_name');

//  $tableName = 'muktijuddha_vatha_application';

var_dump($searchvalue,$tableName);
}
}

输出

null null

我的htaccess代码

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

<IfModule !mod_rewrite.c>
   ErrorDocument 404 /index.php
</IfModule>

2 个答案:

答案 0 :(得分:0)

尝试使用AJAX中的对象:

data: { searchvalue: searchdata, table_name: 'muktijuddha_vatha_application' }, 

答案 1 :(得分:0)

要调试代码,我将从ajax开始,将jquery中的var_dump导出为

Shell("Path of Interpreter" & " " & "Path of script")

我总是使用console.log(数据),所以你不会遇到没有把你的var_dump数据输出的css或html的问题。所以试试这个:

$("#searchdata").html(data);

第二件事是在chrome或FF firebug上打开你的inspect元素,看看是否有POST,以及是什么URL,以及发布了什么数据。

那么你检查了ajax是否发布到url,然后如果url存在以及URL的响应是什么,然后如果从PHP显示响应然后看看是否是console.log(或者你做了$(&#34; #searchdata&#34;)。html(data);)确实导出了你的var_dump。

并发布多个数据尝试发布如下:

console.log(data);

或者像你这样:

data: { code: code, userid: userid }