Я уверен, что это простая проблема, я посмотрел на форумах, но не смог найти пример, относящийся к моей проблеме.
По сути, я отображаю таблицу hrefs, котораяу каждого есть вызов onclick () к методу ajax с использованием get и URL.
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;
}
}
}
Вызов href выглядит следующим образом:
echo '<td><a href="#" onClick="sendRequest(\'get\', \''.$toPass.'\')"/>'.$variable.'</a></td>';
Переменная $toPass
равна page.php?variable1='.$variable1.'&variable2='.$variable2.'&variable3=blah&action='.$option.'
Когда я передаю переменную 1, например:'TP111010114' работает нормально, _REQUEST ['variable1'];захватывает переменную и проталкивает ее через мой sql-запрос.
, если переменная содержит #, например: «Blah # 2», единственный фрагмент данных, который проходит, - это переменная 1 = «Blah» с оставшимисяпеременные не назначены.Из того, на что это похоже, ничего не получается после #.Я попытался кодировать URL-адрес в php, а затем удалить его в своем ajax.js, где вы вызываете window.open ('get', unescape (url), true);но у меня был тот же результат, он работал с любой переменной, не содержащей #.Когда я попытался закодировать его с помощью urlencode () и не расшифровал его в моем ajax.js, запрос не был выполнен.
Кодированный запрос выглядит так:
page.php%3Fvariable1%3DTP111010114%26variable2%3D64%26variable3%3Dnew%26Action%3DOthers
, если онне закодирован, это выглядит так:
page.php?variable1=TP111010114&variable2=64&variable3=new&Action=Others
Я использовал firebug для контроля переменных .js по мере их прохождения, и при кодировании выглядит так, как будто я должен получить правильную переменную, но это все еще толькозахватывает перед # в переменной
http://www.randomsite.ca/page.php?variable1=WF225+Amendment+#2&variable2=543&variable3=new&Action=Others
И все же этот запрос на стороне php по-прежнему получает $ variable = $ _REQUEST ['variable1'] $ variable = 'WF225 Amendment', а другие переменные не назначены.
Это должно быть как-то связано с тем, как что-то обрабатывает #, но я не вижу, чего мне здесь не хватает, если бы кто-то мог помочь, это было бы очень признательно.
Я переименовал информацию в целях конфиденциальности