こんにちは、url という名前の変数を javascript から parse という php 関数にすべて同じページ内で渡そうとしています。また、関数解析も同様に内部処理しようとしています。私は何を間違っていますか?注: 簡単にするために、関数 parse は完全に省略されています。実際には、変数をエコーするだけでなく、より多くの html をエコーします。
これは、phpスクリプト内のjavascriptスクリプト内の私のAJAX REQUESTです。
"<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;
}
?>