javascript - Capture embedded variable from jQuery Ajax call -
i'm trying convert our current javascript framework jquery cause we'll need additional functionality of jquery further projects. there 1 particular function on place (and setup how setup......) i'd override jquery equivalent. here's original javascript function makes ajax call php page.
function ajax(n,f,v){ var ajaxrequest; if(window.xmlhttprequest){// code ie7+, firefox, chrome, opera, safari ajaxrequest=new xmlhttprequest(); } else{// code ie6, ie5 ajaxrequest=new activexobject("microsoft.xmlhttp"); } ajaxrequest.onreadystatechange=function(){ if(ajaxrequest.readystate==4 && ajaxrequest.status==200){ //this result stored result = ajaxrequest.responsetext; //parsescript pulls out content , div , populates div retrieved content. parsed_result = parsescript(result); document.getelementbyid(parsed_result.div).innerhtml = parsed_result.source; } } ajaxrequest.open("get","view.php?n="+n+"&f="+f+"&v="+v+"&time="+(new date).gettime(),true); ajaxrequest.send(); } function parsescript(_source) { var source = _source; var scripts = new array(); while(source.indexof("<script") > -1 || source.indexof("</script") > -1) { var s = source.indexof("<script"); var s_e = source.indexof(">", s); var e = source.indexof("</script", s); var e_e = source.indexof(">", e); scripts.push(source.substring(s_e+1, e)); source = source.substring(0, s) + source.substring(e_e+1); } for(var i=0; i<scripts.length; i++) { try { eval(scripts[i]); var div = div; } catch(ex) { } } return {source: source, div: div}; } this @ top of page retrieve (hence parsescript function). div variable tells put retrieved content.
<script> var div = 'content_1'; </script> <!-- retrieved html --> the jquery function i'd "set on top" of javascript function require don't edit retrieve ajax file @ all. see below attempt @ jquery call.
function jajax(n,f,v) { $.get('view.php', 'n='+n+'&f='+f+'&v='+v, function(result) { if(result) { if($('#'+result.div).length) { $('#'+result.div).html(result); } else { console.log("couldn't find div= "+result.div); } } else { console.log("couldn't find names n="+n+' f='+f+' v='+v); } }); } so question have how use jquery capture variable ajax call can populate capture div retrieved html?
one other thing, yes can can think of bunch of ways besides doing this, way easiest current framework set in place when got here. so, please suggest ways of retrieving variable ajax script. muchly!
there no built in way value of variables in javascript file retrieved through jquery ajax methods. could, however, call parsescript function inside $.get callback:
$.get('view.php', 'n='+n+'&f='+f+'&v='+v, function(result) { if(result) { parsed_result = parsescript(result); if($('#' + parsed_result.div).length) { $('#' + parsed_result.div).html(parsed_result.source); } else { console.log("couldn't find div= " + parsed_result.div); } } else { console.log("couldn't find names n="+n+' f='+f+' v='+v); } }); edit:
you may have make call longer $.ajax(...) method, setting content type text, because have script tag in page.
edit (alternative):
you reference variable 'div' in $.get callback because @ point script have been executed:
$.get('view.php', 'n='+n+'&f='+f+'&v='+v, function(result) { if(result) { if($('#' + div).length) { $('#' + div).html(result); } else { console.log("couldn't find div= " + div); } } else { console.log("couldn't find names n="+n+' f='+f+' v='+v); } });
Comments
Post a Comment