2013-02-26 5 views
2

Мне нравится извлекать строку с вызовом Ajax, но я продолжаю получать всю html-страницу в своем ответе.Как получить данные с помощью вызова Ajax

Каков способ просто получить строку?

$.ajax({ 
        url: '{$domainpath}{$language}/reservations/updatestartdates', 
        data: {property:property,stayduration:stayduration}, 
        type: 'POST', 
        dataType: 'json' 
       }).done(function(response){ 
        alert(response); 
       }); 

private function updateAvailableStartDates(){ 
    if(isset($_POST['property']) && !empty($_POST['property']) && isset($_POST['stayduration']) && !empty($_POST['stayduration'])){ 
     $property = $_POST['property']; 
     $stayduration = $_POST['stayduration']; 
    } 
    //handle code 

    echo json_encode('only this string'); 
} 
+1

Вам нужно повторить _только_ строку если это запрос AJAX –

+0

@DipeshParmar что, что хорошо для? –

+0

Разместите функцию обновления до вывода содержимого страницы и добавьте 'exit;' после 'echo', таким образом, она выйдет, если запрос' POST' будет соответствовать и т. Д. – adeneo

ответ

1

Как правило, хорошая идея выйти сразу после печати JSON, чтобы предотвратить содержимое (возможно, \ n) от нарушения ответа.

echo json_encode('only this string'); 
exit(); 
+0

Это работает для меня действительно! Мне также пришлось изменить свой код так: echo json_encode (array ('success' => $ string)); и поймать его с помощью 'availableDates = response.success.split (', ');' –

2

Он будет получать все выходные из url: '{$domainpath}{$language}/reservations/updatestartdates',

Так что, если вы хотите строка, то только echo строка на странице сервера (Удалить все выходные данные HTML)

Изменение Также echo json_encode('only this string'); в echo json_encode(array('only this string'));

0

Я думаю, что ваша функция отправит ответ с режимом макета, так что строка будет иметь завернутый макет. Возможно, вам нужно отключить компоновку в контроллере для вызывающей функции (url: '{$domainpath{$language}/reservations/updatestartdates').

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