【发布时间】:2015-05-18 10:58:10
【问题描述】:
我正在使用 CI 和 Windows 7。
从我的视图文件中,我正在调用控制器中的 ajax 函数。
在我的 ajax 中,我将字符串作为Pack & Send 传递,但是当我在控制器函数中回显相同的字符串时,它只是回显Pack。
我的 ajax 调用看起来像
<script>
$(document).ready(function(){
$("select#items").change(function(){
var country_id = $("select#items option:selected").attr('value');
$("#state").html( "" );
$("#city").html( "" );
if (country_id.length > 0 ) {
$.ajax({
type: "POST",
url: "<?php echo site_url('ga_api/sample/ajax_second_dropdown');?>",
data: "country_id="+country_id,
cache: false,
beforeSend: function () {
$('#state').html('<img src="<?php echo IMAGE_PATH;?>loader.gif" alt="" width="24" height="24">');
},
success: function(html) {
$("#state").html( html );
}
});
}
alert(country_id);
});
});
</script>
警报时我得到整个字符串,即Pack & Send。
现在我在控制器中的 php 函数
function ajax_second_dropdown()
{
echo $_POST["country_id"];
}
这里只是呼应Pack
我认为可能是由于特殊字符。但我想这不是我试图将& 更改为、%、'、\、\& 等的场景,在这些情况下,我得到了整个字符串。
【问题讨论】:
-
在将字符串传递给 ajax 之前尝试对字符串进行 URL 编码。删除
&后是否有效? -
试试这个。
data: "country_id="+encodeURI(country_id), -
jQuery 接受对象作为其数据设置,因此您可以让它进行转义:
data: {"country_id": country_id},
标签: javascript php ajax