Я использую CI и окна 7. Из моего файла просмотра я вызываю функцию в ajax, которая находится в контроллере. В моем ajax я передаю строку как Pack & Send
, но когда я повторяю ту же строку в функции контроллера, это просто эхо Pack
.Функция PHP не отображает строку после «&»
Мой Аякса вызов выглядит
<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
Я думал, может быть связано с особым характером. Но я думаю, что это не сцена, когда я пытался изменить &
, %
, '
, \
, \&
и так далее, в этих случаях я получаю целую строку.
Попробуйте URL закодировать строку перед передачей его Аяксу. Он работает, когда вы удаляете '&'? – user4035
Попробуйте это. 'data:" country_id = "+ encodeURI (country_id),' –
jQuery принимает объект для настройки своих данных, поэтому вы можете позволить ему выполнить экранирование: 'data: {" country_id ": country_id},' – Marek