我正在进行ajax调用并且正在回复html
响应,我append
该数据带有success:
参数。
有没有办法同时向data array
发送相同的请求,如果响应为appended
但是可以在不同的位置/元素中使用,则不会输出?
我寻找答案,我发誓,我没有找到任何有用或可理解的东西。
我会将我的html
设置为响应数组的第一个元素,然后将我的数据数组添加为响应第二个元素但是我无法将html
推送到数组和{{1它稍后。
更新
append
答案 0 :(得分:2)
根据您对该问题的评论,@ Terminus让您走上正轨。至于渲染问题,您需要将渲染的HTML存储到变量中。您可以使用ob_来创建临时响应流,然后可以将其保存到变量中。请考虑以下事项:
$myHtml = '';
ob_start();
// Render your HTML here whether its get_template_part() or echo, it will only save to the temporary stream
$myHtml = ob_get_clean();
// Now return your JSON
echo json_encode(array(
'parameter1' => 'paramvalue',
'parameter1' => 'paramvalue',
'responseHtml' => $myHtml,
));
现在你的jQuery看起来像这样
jQuery.ajax({
url: 'yourajaxurlhere',
data: { },
dataType: 'json',
success: function(__respData) {
var __myHtml = __respData.responseHtml;
var __param1 = __respData.parameter1;
var __param2 = __respData.parameter2;
}
});
希望有所帮助。
根据您的更新进行更新:
尝试这种方法:
$i = 0;
//Forming data array
$dataArray = array();
while( $i > 3) { // side note this condition concerns me based on your ++ iterator
array_push($dataArray, array(
'customIconMarkerImage' => $marker_image,
'lat' => $coordinate[0],
'lng' => $coordinate[1],
'postId' => get_the_ID(),
'postType' => 'red',
'alreadyLoaded' => false
));
$i++;
}
//Response
$response = array();
array_push ( $response, $results_html, $data_array, $count );
echo json_encode( array(
'dataArray' => $dataArray,
'results_html' => $results_html,
'count' => $count
));
然后在你的jQuery中
$.ajax({
url: '', data: {}, dataType: 'json',
success: function(__resp) {
var __myMarkup = __resp.results_html;
var __myDataArray = __resp.dataArray;
var __myCount = __resp.count;
$.each(__myDataArray, function(__daIndex, __da) {
// Do javascript / googlemaps stuff here.
var __customMarker = new google.maps.MarkerImage(__da.customIconMarkerImage, null, null, null, new google.maps.Size(50, 69));
var __latLng = new google.maps.LatLng(__da.lat, __da.lng);
var __postId = __da.postId;
var __postType = __da.postType;
var __alreadyLoaded = __da.alreadyLoaded;
});
}
});
我改变了什么才有意义?基本上你试图在你的JSON中返回javascript功能,这是你做不到的。相反,我修改了它,以便您的JSON返回您需要的VALUES,以便使用该信息运行javascript。如果这有助于你,请告诉我。