我花了几个小时寻找帮助返回到 Javascript 的 AJAX 调用到 php 脚本。
我正在尝试做的是将一个值插入到表中,然后返回该插入行的 id,然后可以在表单中使用它,因此当使用表单数据更新表时,它可以指定在哪里它应该去(哪一行)。我需要这样做,所以我基本上可以保留该行,并且它不会被其他用户盗用。
这是我一直在使用的电话:
id = getID('<?php echo $q; ?>','<?php echo $i; ?>');
php 值是有效的(查看代码,显示值),并且 var 是在 javascript 函数之外声明的。
这是 AJAX 函数:
var xmlhttp;
function getID(q, i)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Sorry but your browser does not support AJAX or Javascript has been disabled");
return;
}
var url = "getID.php";
url = url + "?q=" + q;
url = url + "&i=" + i;
// execute the fully formed request
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
id = xmlhttp.responseText;
// alert(xmlhttp.responseText);
// return xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
和php代码:
$q = $_GET['q'];
$i = $_GET['i'];
$query = "INSERT INTO parts (q, i) VALUES ('".$q."','".$i."')";
$results = mysql_query($query) or die(mysql_error());
$nextId = mysql_insert_id();
echo "$nextId";
如果我提醒该值,它将正确返回,但在为该值和要输入的数据创建 DOM 动态行的表单中,它会出现“未定义”。谁能指导我如何完成这项工作?我承认我不是 AJAX 专家,当我尝试它们时,我似乎无法让回调工作,坦率地说,我真的不明白如何......
提前感谢您提供的任何帮助。