私はそれが単なる問題であると確信しています。私はフォーラムを見てきましたが、私の問題に特有の例は見つかりませんでした。PHP + Ajax + Sqlの問題
基本的に私はajaxメソッドへのonclick()呼び出しを持つhrefsのテーブルを表示していますが、 'get'とurlを使用しています。 'TP111010114' は正常に動作し、_REQUEST [:$toPass
変数はpage.php?variable1='.$variable1.'&variable2='.$variable2.'&variable3=blah&action='.$option.'
私は例えば、変数1を渡すときである
echo '<td><a href="#" onClick="sendRequest(\'get\', \''.$toPass.'\')"/>'.$variable.'</a></td>';
:ようhrefのための呼び出しが見え
function createRequestObject(){
var req;
if(window.XMLHttpRequest){
//For Firefox, Safari, Opera
req = new XMLHttpRequest();
}
else if(window.ActiveXObject){
//For IE 5+
req = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
//Error for an old browser
alert("Your browser is not IE 5 or higher, or Firefox or Safari or Opera");
}
return req;
}
//Make the XMLHttpRequest Object
var http = createRequestObject();
function sendRequest(method, url){
if(method == "get" || method == "GET"){
http.open(method,url,true);
http.onreadystatechange = handleResponse;
http.send(null);
}
}
function handleResponse(){
if(http.readyState == 4 && http.status == 200){
var response = http.responseText;
if(response){
document.getElementById("DIVNAME").innerHTML = response;
}
}
}
'変数1'];変数を取得し、それを私のSQLリクエストを通してプッシュします。
変数は、例えば#が含まれている場合:「何とか#2」を介して取得したデータのみ片を残りの変数が割り当てられていないことと 変数1 =「何とか」です。 #の後には何も表示されません。 私はphpでurlをエンコードしようとしましたが、私のajax.jsでそれをアンエスケープしてwindow.open( 'get'、unescape(url)、true)を呼び出しました。しかし、私は同じ結果を持っていました。#を含まない変数で動作しました。私はそれを私のajax.jsでそれをデコードしないでurlencode()を使ってエンコードしようとしましたが、リクエストは通過していませんでした。
エンコードされた要求は、次のようになります。彼らは通過し、それはように見えるように私は、.jsファイル変数を監視するために放火犯を使用
page.php?variable1=TP111010114&variable2=64&variable3=new&Action=Others
:同じように見えるエンコードされていない場合
page.php%3Fvariable1%3DTP111010114%26variable2%3D64%26variable3%3Dnew%26Action%3DOthers
しかし、私はそれが適切な変数を取得する必要がありますそれをエンコードするときには、まだ変数の#の前につかむ
http://www.randomsite.ca/page.php?variable1=WF225+Amendment+#2&variable2=543&variable3=new&Action=Others
まだこのPHP側のリクエストは、$ variable = $ _REQUEST ['variable1'] $ variable = 'WF225 Amendment'となり、他の変数は割り当てられていません。
何かが#を処理する方法とは関係がありますが、誰かがそれを高く評価するのを助けることができれば、私はここで何が欠けているのかわかりません。私はプライバシーの目的のために情報の名前を変更した
は
...また、OPは自分のAJAXハンドラをロールしないでくださいが、jqueryやmootoolsのようなものを使用してください。 –
これは参考になるかもしれませんが、この変更を行う必要がある初期HTMLページを生成するPHPコードではこの問題は修正されませんでした。 –
Danに感謝します。すぐに働き、知り合いになりました。 – Liam