Я новичок в ajax и хочу, чтобы все мои текстовые поля отправлялись в мою базу данных MySQL без страницы обновления.
Это прекрасно работает, если я фиксирую значение текстового поля с js в качествепараметр "str" ("тип" - это просто еще один параметр, который я использую)
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 я получаю правильные результаты в Браузере рабочего стола с использованием:
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);
Но это не работает на Mobile Safari или Mobile Android.Он будет захватывать отраженный ответ в точном объекте xml.responseText и отображать его на странице, но не будет связываться с базой данных.
Любые идеи?