您好,我試圖從JavaScript傳遞一個名爲url的變量到一個名爲解析所有在同一頁面內的PHP函數,下面是我的下面的嘗試,但它沒有渲染任何東西。我也試圖innerthml函數解析。我做錯了什麼?注意:爲了簡單起見,函數解析被完全截斷,它實際上不僅僅是回顯一個變量,而是回聲更多的html。在同一頁面傳遞一個JavaScript變量到一個PHP函數問題
這裏是我的AJAX請求裏面的一個JavaScript腳本內的PHP腳本。
"<script type=\"text/javascript\">\n".
"\n".
"// create and return an XMLHttpRequest object\n".
"function createRequest() {\n".
" var ajaxRequest; // the xmlrequest object\n".
" try{\n".
" // Opera 8.0+, Firefox, Safari\n".
" ajaxRequest = new XMLHttpRequest();\n".
" } catch (e){\n".
" // Internet Explorer Browsers\n".
" try{\n".
" ajaxRequest = new ActiveXObject(\"Msxml2.XMLHTTP\");\n".
" } catch (e) {\n".
" try{\n".
" ajaxRequest = new ActiveXObject(\"Microsoft.XMLHTTP\");\n".
" } catch (e){\n".
" // Something went wrong\n".
" alert(\"Your browser broke!\");\n".
" return false;\n".
" }\n".
" }\n".
" }\n".
" return ajaxRequest;\n".
"} // end of createRequest\n".
這裏是我的實際JavaScript和我想要傳遞變量URL和功能的innerHTML解析
"var spellcheck = function(data){\n".
" var found=false;var url='';\n".
" var text=data[0];\n".
" if(text!=document.getElementById('spellcheckinput').value)return;\n".
" for(i=0;i<data[1].length;i++){if(text.toLowerCase()==data[1][i].toLowerCase()){found=true;url='http://en.wikipedia.org/wiki/'+text;document.getElementById('spellcheckresult').innerHTML='<b style=\"color:green\">Correct</b> - <a target=\"_top\" href=\"'+url+'\">link</a>';}}\n".
" if(!found)\n".
" document.getElementById('spellcheckresult').innerHTML='<b style=\"color:red\">Incorrect</b>';};\n".
" var getjs= function(value){\n".
" if(!value)return;".
" var url='http://en.wikipedia.org/w/api.php?action=opensearch&search='+value+'&format=json&callback=spellcheck';". // this is the variable I want to pass
"document.getElementById('spellcheckresult').innerHTML='Checking ...';".
"var elem=document.createElement('script');".
"elem.setAttribute('src',url);".
"elem.setAttribute('type','text/javascript');".
"document.getElementsByTagName('head')[0].appendChild(elem);};\n".
"document.getElementById('resultdiv').innerHTML='" . parse() . "';\n". //here wanting to innerhtml my php function
這是我成功的AJAX JavaScript變量傳遞給我的PHP函數樓下
" var requestone = createRequest();"
"var variabletosend = url;"
"var vars = "deletenode=" + encodeURIComponent(variabletosend);"
"requestone.open("POST", "parse()", true);"
"requestone.setRequestHeader("Content-type", "application/x-www-form-urlencoded");"
"requestone.onreadystatechange = function(){"
"handleRequest(requestone);"
"}"
"requestone.send(vars);"
"</script>\n".
"\n".
"<form action=\"#\" method=\"get\" onsubmit=\"return false\">\n".
"<p>Enter a species here : <input id=\"spellcheckinput\" onkeyup=\"getjs (this.value);\" type=\"text\"> <span id=\"spellcheckresult\"></span></p>\n".
"</form>\n".
"<div id=resultdiv></div>".
"</body>\n".
"</html>\n".
"\n";
function parse($url){
print $url;
}
?>
增加的功能解析注 – Squirtle
爲什麼是一個PHP字符串中您的JavaScript?它是否被迴應?爲什麼不把腳本保存在'.js'文件中,從HTML文檔中引用它呢? –
@PhpMyCoder你的權利,抱歉的格式。 – Squirtle