Php 如何使用mySQL在移动设备上发出Ajax请求
我是ajax新手,我想让我所有的文本框都提交到我的MySQL数据库,而不需要更新页面 如果我用js捕获textbox的值,这就很好了,因为str type参数只是我正在使用的另一个参数Php 如何使用mySQL在移动设备上发出Ajax请求,php,ajax,jquery,jquery-selectors,javascript,Php,Ajax,Jquery,Jquery Selectors,Javascript,我是ajax新手,我想让我所有的文本框都提交到我的MySQL数据库,而不需要更新页面 如果我用js捕获textbox的值,这就很好了,因为str type参数只是我正在使用的另一个参数 function sendAjax(type, str) { var xmlhttp; if (str=="") { document.getElementById("txtResp").innerHTML=""; return; } if (window.XMLHttpRequest) {/
function sendAjax(type, str)
{
var xmlhttp;
if (str=="")
{
document.getElementById("txtResp").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtResp").innerHTML=xmlhttp.responseText;
}
}
switch(type)
{
case 'search':
xmlhttp.open("GET","mysql_process_search.php?q="+str,true);
break;
case 'add':
xmlhttp.open("GET","mysql_process_event.php?q="+str,true);
break;
}
xmlhttp.send();
}
通过mysql_process_event.php页面,我可以在桌面浏览器上通过以下方式获得正确的结果:
但这在移动Safari或移动Android上不起作用。它将捕获xml.responseText对象中的回显响应并将其显示在页面上,但不会与数据库通信
有什么想法吗?您收到的错误消息是什么?如果您直接调用php页面,您应该能够看到最终结果,即使是在移动设备上
其次,您编写的代码本质上是危险的,并且对SQL注入非常开放,这意味着黑客攻击您的数据库非常简单,并且会做一些不好的事情,比如从数据库中选择所有内容、删除表等等。。您最好使用绑定变量,并至少转义字符串。是的,我知道我想简化php代码,以便找到移动浏览器的问题。问题是,没有错误,它只是不会发送或显示来自数据库的信息。在桌面上工作很好browsers@TaylorMac好的这让我担心。下一个想法:尝试打开错误报告错误报告通知;看看你能得到什么。如果有任何错误,应该显示出来。其次,我很好奇为什么要使用InnerHTML?我建议document.getElementById…value=response。第三,你在哪些桌面浏览器上试用过?第四,这是在公共网络主机上吗?如果你愿意,我可以在我的iDevice上试用,看看有没有什么不同。非常感谢。我允许更多的错误报告,我发现了我的问题。在我的一个HTML对象上,我没有onclick=,因此它在mobile safari上不起作用。它显示没有发送任何请求。是的,我必须将innerHTML更改为.value。
echo $_GET['q'];
$q = $_GET['q'];
$con = mysql_connect('xxx', 'xxx', 'xxx');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("xxx", $con);
$result = mysql_query("SELECT * FROM Events");
mysql_query("INSERT INTO Events (Title)
VALUES ('".$q."')");
mysql_close($con);