PHPスクリプトへのAJAX呼び出しをJavascriptに戻すためのヘルプを探すのに何時間も費やしました。
私がやろうとしているのは、値をテーブルに挿入し、その挿入された行の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 の専門家ではないことを認めます。試してみると、コールバックを機能させることができないようです。率直に言って、その方法を本当に理解していません...
誰でも提供できるヘルプを事前に感謝します。