Javascript Jquery使用ajaxpost操作html模板
我正在这么做Javascript Jquery使用ajaxpost操作html模板,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在这么做 Php页面citySearchResultLiselement.Php <?php $cityId = $_GET['city_Id']; $cityName = $_GET['city_screen_name']; ?> <li class="result"> <a target="_blank" href="javascript:selectedCityInSearch('<?php echo $cityId; ?>','<
<?php
$cityId = $_GET['city_Id'];
$cityName = $_GET['city_screen_name'];
?>
<li class="result">
<a target="_blank" href="javascript:selectedCityInSearch('<?php echo $cityId; ?>','<?php echo $cityName; ?>');">
<h2><?php echo $cityName; ?></h2></a>
</li>
function test(resourceObject,paramArray)
{
var myObject = getMockupElementHtml(resourceObject,paramArray);
console.log(myObject);
return myObject;
}
Object {readyState: 1, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
abort: function (e){return e=e||S,o&&o.abort(e),T(0,e),this}
always: function (){return i.done(arguments).fail(arguments),this}
complete: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
done: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
error: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
fail: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
getAllResponseHeaders: function (){return E===2?i:null}
getResponseHeader: function (e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n}
overrideMimeType: function (e){return E||(c.mimeType=e),this}
pipe: function (){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()}
progress: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
promise: function (e){return e!=null?v.extend(e,r):r}
readyState: 4
responseText: "<li class="result"><a target="_blank" href="javascript:selectedCityInSearch('1925','Sarakhs (Iran, Islamic Republic Of)');">
<h2>Sarakhs (Iran, Islamic Republic Of)</h2></a>
</li>"
setRequestHeader: function (e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this}
state: function (){return n}
status: 200
statusCode: function (e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this}
statusText: "OK"
success: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
then: function (){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()}
Object{readyState:1,setRequestHeader:function,getAllResponseHeaders:function,getResponseHeader:function,OverrideMetype:function…}
中止:函数(e){返回e=e | | S,o&&o.abort(e),T(0,e),this}
始终:函数(){返回i.done(参数).fail(参数),this}
complete:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回此}
完成:函数(){if(a){var t=a.length;(函数r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回此}
错误:函数(){if(a){var t=a.length;(函数r(t){v.each(t,函数(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回此值}
fail:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))返回此}
getAllResponseHeaders:function(){returne E==2?i:null}
getResponseHeader:function(e){var n;if(e==2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}返回n==t?null:n}
overrideMimeType:function(e){returne e | |(c.mimeType=e),this}
pipe:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1](v.isFunction(o)→function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)→e.promission().done(n.resolve.resolve)失败(n.reject)。进程(n.notify):n[s+”带“](this==i?n:this[e]:n],[e],[e],[e],[e]:n[s]),e]空值)
进程:函数(){if(a){var t=a.length;(函数r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回这个}
承诺:函数(e){返回e!=null?v.extend(e,r):r}
重新启用日期:4
responseText:“
”
setRequestHeader:函数(e,t){if(!e){var n=e.toLowerCase();e=w[n]=w[n]|e,b[e]=t}返回此}
状态:函数(){return n}
现状:200
状态代码:函数(e){if(e){var t;if(e不确定,但这可能是问题所在:
function getMockupElementHtml(resourceObject,
上面您没有关闭“()”括号,似乎您也遗漏了一些参数
这应该是:
function getMockupElementHtml(resourceObject, paramArray){ // <---like this
并更改为:
dataType: 'html',
您的问题是,您正在同步代码中包装异步代码,并且使用冲突的变量名
var content = '';
content = $.ajax({ //content variable is now a jqXHR object returned from $.ajax()
url: url,
type: 'GET',
data: paramArray,
dataType: 'text',
crossDomain: true
}).done(function (data) {
content = data; //this does happen until AFTER content is returned to calling function
})
.fail(function (xhr, textStatus, errorThrown) {
console.log(xhr.responseText);
console.log(textStatus);
console.log(errorThrown);
}
);
return content;//content is still jqXHR at this point
为了解决此问题,请不要使用返回,简单地对回调中的数据执行您想要执行的操作:
.done(function (data) {
console.log(data);
})
我相当确定这是一个同步性问题是的,可能我在代码的位置问题上输入了一些错误,不管我的代码中的函数是正确的,没有缺少参数错误。我不能使用jQuery ajax调用来返回javascript函数的值吗?我的目标是使用getMockupElementHtml作为“模板提供程序”为了处理它在一个单独的javascript函数中返回的内容…@user3385666是的,如果您使ajax调用同步,那么您将锁定浏览器,直到调用完成,这可能需要一段时间。异步性是javascripts的一个优点,不要尝试与之抗争。这正是我想要的。如果ll是异步的,因为它是一个非常简单的调用,但它必须是动态的,并通过javascript调用。非常感谢!
var content = '';
content = $.ajax({ //content variable is now a jqXHR object returned from $.ajax()
url: url,
type: 'GET',
data: paramArray,
dataType: 'text',
crossDomain: true
}).done(function (data) {
content = data; //this does happen until AFTER content is returned to calling function
})
.fail(function (xhr, textStatus, errorThrown) {
console.log(xhr.responseText);
console.log(textStatus);
console.log(errorThrown);
}
);
return content;//content is still jqXHR at this point
.done(function (data) {
console.log(data);
})