Я хотел бы отправить данные в БД MySql из формы через AJAX и PHP-скрипт.Я могу сделать это идеально, используя выбор параметров в форме, но я просто не могу получить его, используя текстовую форму отправки.
Первое, что работает:
Форма HTML:
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
</select>
</form>
.js Scipt:
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
PHP Script:
<?php
$q=$_GET['q'];
$con = mysql_connect('localhost', 'root');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("ajax_demo", $con);
$sql="SELECT * FROM emp WHERE id = '$q'";
$result = mysql_query($sql);
$i = 0;
echo "<table class=\"table-master\">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";
while($row = mysql_fetch_array($result))
{
$i++;
echo "<tr class=\"d".($i & 1)."\">";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
То, что я хочу сделать, - это иметь текстовое поле в моем HTML, которое будет заполнено пользователем, когдапользователь нажимает «отправить», эта информация передается в js-скрипт, содержащий сегмент AJAX, запрашивается БД, а результаты передаются в мой DIV.
Где я думаю, что я иду не так - не могу использовать onchange , очевидно, в форме при использовании текстовой формы для передачи.Должен быть подан!?Скрипт js работает, поэтому я думаю, что моя AJAX-часть в порядке.Сценарий PHP также работает, но опять же, все ломается, как только я пытаюсь получить ввод текста из формы.Возможно, мой js-скрипт не настроен для захвата входящих переменных текстовой формы !?Буду признателен за любую помощь / руководство.