Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to post a persian statement with spaces in ajax url

Tags:

jquery

ajax

php

I have used ajax as below:

$('.province').on('click', function (e) 
{
    var optionSelected = $("option:selected", this);
    var valueSelected = this.value;
    var valueSelected = valueSelected.replace(/ /gi,"%20");
    var valueSelected = encodeURIComponent(valueSelected);
    //alert(valueSelected);
   $.ajax({
            type: 'post',
            encoding:"UTF-8",
            url: "<?php echo base_url();?>Search/cities_of_province/"+valueSelected,
            data: '',
            contentType: "charset=utf-8", 
            success: function (result) {
            //alert(result);
            $('.city').html(result);

            return false;
        }
      });
    return false;
});

valueSelected in above url is a persion statement with space in it. for example it is استان آذربایجان شرقی. when it is post to the url, just first part(استان) is recieved. I aslo removed valueSelected.replace(/ /gi,"%20") and encodeURIComponent(valueSelected) but nothing happend. what is the solution?

like image 295
Hoda Kh Avatar asked Sep 03 '25 05:09

Hoda Kh


1 Answers

I faced no issue like that.. I used no encodeURIComponent no encoding:"UTF-8" no contentType: "charset=utf-8"

Nothing needed. And it works simply perfect. I tested it with following code

I have Html

<input id='yourInputId' value='استان آذربایجان شرقی' />

JavaScript

<script>
var valueSelected = $('#yourInputId').val();
//before ajax request
alert(valueSelected ); // it gives me here =>استان آذربایجان شرقی
//before making ajax reuest plz confirm you get above value correctly here
alert(<?php echo base_url();?>); //it must be valid as well
        $.ajax
        ({
            type: "POST",
            url: "<?php echo base_url();?>Search/cities_of_province", //should be valid
            data: { province : valueSelected }, 
            success: function (result) {                
                alert(result); //it gives => استان آذربایجان شرقی
            },
            error:function(a)
            {
                alert(a.responseText);
            }
        });
</script>

PHP

<?php 
if(isset($_POST['province']))
   $v = $_POST['province'];
else
   $v = 'Province value not provided from client side';
echo $v;

?>
like image 52
Sami Avatar answered Sep 04 '25 17:09

Sami