Issue with PHP + Ajax + Sql
Issue with PHP + Ajax + Sql
我确信这只是一个简单的问题,我在论坛上找过,但找不到一个特定于我的问题的例子。
基本上我正在显示一个表的href,其中每个有一个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 ',其余变量未赋值。从它看起来,它没有得到任何后面的#。我尝试在php中编码url,然后在我的ajax.js中不转义它,你调用窗口。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 ',其他变量未赋值
这一定是与某些东西处理#的方式有关,但我不知道我在这里错过了什么,如果有人能帮助它将不胜感激。
出于隐私考虑,我已经重命名了信息
您需要urlencode
您放入URL的值,而不是整个URL,包括变量名称。您希望编码"blah #2"而不是"&variable1="部分。例:
$toPass = 'page.php?variable1=' . urlencode($variable1) . '&variable2=' . urlencode($variable2) ...etc
不需要在HTML/JS端进行任何解码。
我相信它可能会将#之后的任何内容解析为命名锚,这可能会忽略此点之后的变量…您是否尝试过使用不依赖于#字符的方法?或者甚至尝试使用POST作为AJAX方法?
- 当通过ajax发送到php/sql时,无法存储HTML
- 使用AJAX将日期从SQL服务器传递到jQuery日历
- 使用Ajax和JQuery从SQL数据库中添加和删除一行
- 通过 ajax POST 向 PHP 发送两个值以查询 SQL 数据库
- 使用 ajax 将对象数组发送到 php 并提交给 SQL
- 如何使用 ajax 从 sql Server 获取单选按钮的值,并表示列表单选按钮
- ajax发布数据并点击运行php-sql查询
- ajax在页面刷新之前不会加载新的sql结果
- jQueryAjax SQL-如果我在多个用户上单击编辑,则Ajax会更新我单击的所有内容.不是最后一个点击
- 从ajax中获取数据,同时将其放入sql查询中
- 使用ajax和grails更新SQL数据库
- ajax sql 和 PHP 查询数据库并返回结果
- 使用 ajax 用 SQL 填充下拉列表
- 如何从按钮函数中获取要在 AJAX 和 sql 查找中使用的值
- 使用 Javascript、PHP 和 AJAX 输出 SQL 查询
- AJAX:无法在 PHP 脚本中将 javascript 变量传递给 SQL 查询
- 如何将数据从 sql 服务器加载到 Bing Ajax 地图控件
- Ajax/Jquery - 在从服务器返回数据时调用 javascript 函数/使用 ajax 执行并行 SQL 查询
- AJAX Sql更新不起作用
- Issue with PHP + Ajax + Sql