2016-03-17 5 views
0

У меня есть вызов ajax, который будет отвечать значениям, разделенным запятой. Я хочу изменить это значение в массив.Как удалить граничные кавычки в jquery?

Вот мой пример

$.ajax 
({    
    url: url, 
    type: 'post', 
    data: Data, 
    success: function(response) 
    { 
     console.log([response]); 
    } 
}); 

В ответ будет

'Alappuzha','Beypur','Cheruvannur','Edakkara','Edathala','Kalamassery' 

как этот

Я преобразующего его в массив Итак, [ответ] является шоу

["'Alappuzha','Beypur','Cheruvannur','Edakkara','Edathala','Kalamassery'"] 

li ке это

Но я не хочу делать граничные кавычки

Вот мой PHP код

foreach($citydata as $keyrow): 
    $citylist[]= "'".$keyrow['location_name']."'"; 
endforeach; 
$dataCity = implode(",",$citylist); 
print($dataCity); 
exit; 

Спасибо заранее

+1

Почему вы не можете исправить это на стороне сервера?и вернуть массив –

+1

Можете ли вы также показать код «PHP»? –

+0

Что именно вы хотите сделать с ответом? Вы хотите, чтобы он был массивом? Пожалуйста, поделитесь и кодом бэкэнда –

ответ

1

Правильное решение будет зафиксировать его на стороне сервера и вернуть правильный массив строк клиенту.

Если это невозможно, вы можете разделить строку на , затем обработать каждый элемент и удалить начальный и конечный '

var response = "'Alappuzha','Beypur','Cheruvannur','Edakkara','Edathala','Kalamassery'"; 
 
var array = response.split(',').map(function(value) { 
 
    return value.replace(/^'|'$/g, '') 
 
}); 
 
snippet.log(JSON.stringify(array));
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>


с PHP

foreach($citydata as $keyrow): 
    $citylist[]= $keyrow['location_name']; 
endforeach; 
print(json_encode($dataCity)); 
exit; 

затем просто использовать этот ответ как это

$.ajax({ 
    url: url, 
    type: 'post', 
    data: Data, 
    dataType: 'json', 
    success: function(response) { 
    console.log(response); 
    } 
}); 
+0

Это было бы обходным путем. :) –

+0

В ответ его не имеет двойное quate – Athi

+0

только после добавления в квадратные скобки его comming – Athi

0

var resp ="'Alappuzha','Beypur','Cheruvannur','Edakkara','Edathala','Kalamassery'" ; 
 
var str = "["+resp+"]" 
 
console.log(str.replace(/"(.+)"/g, '$1'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

В ответ у него нет двойного quate – Athi

+0

@ Аthi Я обновил свой ответ. Пожалуйста, проверьте его –

0

попробовать это

success: function(response) 
{ 
    var myArray=response.split(","); 
} 
1

Почему бы вам не изменить код PHP эхо JSON?

foreach($citydata as $keyrow): 
      $citylist[]= "'".$keyrow['location_name']."'"; 
     endforeach; 
     print(json_encode($dataCity)); 
     exit; 

тогда вы не должны делать этого больше:

  console.log([response]); 

просто сделать это:

 console.log(response); 
+0

спасибо, что он работает. – Athi

+1

Почему нужны котировки, когда вы используете JSON? – Barmar

+0

@Barmar, это не нужно, но спрашивающий хочет тех. – Veda

0

Просто используйте response.split(","), чтобы преобразовать строку, которую вы получаете в массив. или вы можете эхо-сигнал json_encode($citylist) вместо его взлома. Таким образом, вы получите правильную строку JSON на стороне клиента, с которой вы можете легко справиться с JS.

Смежные вопросы