Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用mySQL在移动设备上发出Ajax请求_Php_Ajax_Jquery_Jquery Selectors_Javascript - Fatal编程技术网

Php 如何使用mySQL在移动设备上发出Ajax请求

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) {/

我是ajax新手,我想让我所有的文本框都提交到我的MySQL数据库,而不需要更新页面

如果我用js捕获textbox的值,这就很好了,因为str type参数只是我正在使用的另一个参数

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);