'page_id'클래스의 WordPress 페이지 드롭 다운 목록이 있습니다. (반복하여 추가 할 수 있습니다. 따라서 라이브 쿼리). change 이벤트에서 Ajax 요청을 보내서 선택한 페이지의 제목, 발췌 및 미리보기 이미지를 가져오고 싶습니다. 지금은 유효한 Json 응답을 얻으려고하고 있습니다. 콜백에서 json_encode를 사용하여 json 객체를 내 .ajax 함수로 반환합니다. 그리고 나서 .jax 성공 함수에서이 json 객체를 유용한 것으로 파싱하려고 시도하지만 매번 오류가 발생합니다. 여분의 0은 문제가있는 경우Wordpress Backend에서 JSON.parse가 오류를 반환합니다.
{"title":"bacon title","message":"bacon text"}0
내가 모르는 :
JSON.parse
success(response="{"title":"bacon title","message":"bacon text"}0")
handleError(a=Object { url="http://localhost/single/wp-admin/admin-ajax.php", global=true, more...}, b=XMLHttpRequest { onreadystatechange=[xpconnect wrapped nsIDOMEventListener], readyState=4, more...}, d="success", e="{"title":"bacon title","message":"bacon text"}0") onreadystatechange(m=readystatechange)
[Break On This Error] var json = JSON.parse(response);
불을 지르고 콘솔이 응답이 보인다고 :
는오류가 JSON.parse에 문제가 될 것으로 보인다 - 메이커,하지만 나는 또한 어떻게 거기에 도착하는지 모르겠다.
function featured_meta_action_callback(){
$responseVar = array(
'title'=>'bacon title',
'message'=>'bacon text',
);
echo json_encode($responseVar);
}
add_action('wp_ajax_featured_meta_action', 'featured_meta_action_callback');
이 보인다보다 훨씬 더 열심히 것으로 밝혀졌다 :
<script type="text/javascript">
//<![CDATA[
jQuery(function($) {
$('.page_id').livequery(function(){
var loading = $(this).next('img.ajax-loader');
$(this).change(function() {
var value = $(this).val();
if (value.length) {
$(loading).fadeIn();
var data = {
action: 'featured_meta_action',
data: value,
security: '<?php echo wp_create_nonce('featured-ajax-nonce'); ?>',
};
$.ajax({
type: "POST",
data: data,
url: ajaxurl,
complete: function(){
$(loading).fadeOut();
},
success: function(response){
var str = '{ "title": "bar" }';
var json = JSON.parse(response);
alert(json['title']);
},
error: function(){
alert('fail');
}
});
}//end if
}); //end change
}); //end livequery
}); //end ready
/* ]]> */
</script>
내 PHP는 콜백은 다음과 같습니다
여기Uncaught SyntaxError: Unexpected number
$.livequery.$.change.$.ajax.success/single/wp-admin/post.php?post=2&action=edit&message=1:917
내 JQuery와 함수로 : 크롬은 오류를보고 그것이되어야하는 것처럼. 난 그냥 jquery에서 사용할 수 있도록 PHP 함수에서 데이터를 다시 얻을 필요가있다. 나는 어디로 잘못 가고 있니?
0은 문제입니다. 그것은 JSON 객체의 일부가 아니기 때문에 jQuery는 응답을 구문 분석 할 수 없다. http : //localhost/single/wp-admin/admin-ajax.php에서 0을 JSON 응답으로 출력하는 내용을 추적해야합니다. –
즉, { "제목": "베이컨 제목", "메시지": "베이컨 텍스트"}는 해당 페이지가 반환해야하는 내용입니다. –