私は AJAX を処理するために jQuery を使用するのは初めてで、基本を理解するための基本的なスクリプトを作成しました。現在、同じファイルに AJAX リクエストを POST しています。その AJAX 呼び出しの結果に基づいて追加の処理を行いたいと考えています。
これが私のコードです:
**/*convertNum.php*/**
$num = $_POST['json'];
if (isset($num))
echo $num['number'] * 2;
?>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
td {border:none;}
</style>
</head>
<body>
<table width="800" border="1">
<tr>
<td align="center">Number To Send<br /><input type="text" id="numSend" size="40%" style="border:2px solid black;"></td>
<td align="center">Number Returned<br /><input type="text" id="numReturn" size="40%" readonly></td>
</tr>
<tr><td align="center" colspan="4"><input type="button" value="Get Number" id="getNum" /></td></tr>
</table>
<script>
$(document).ready(function () {
$('#getNum').click(function () {
var $numSent = $('#numSend').val();
var json = {"number":$numSent};
$.post("convertNum.php", {"json": json}).done(function (data)
{
alert(data);
}
);
});
});
</script>
</body>
</html>
番号「2」を送信した場合の応答は次のとおりです。
4
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
td {border:none;}
</style>
</head>
<body>
<table width="800" border="1">
<tr>
<td align="center">Number To Send<br /><input type="text" id="numSend" size="40%" style="border:2px solid black;"></td>
<td align="center">Number Returned<br /><input type="text" id="numReturn" size="40%" readonly></td>
</tr>
<tr><td align="center" colspan="4"><input type="button" value="Get Number" id="getNum" /></td></tr>
</table>
<script>
$(document).ready(function () {
$('#getNum').click(function () {
var $numSent = $('#numSend').val();
var json = {"number":$numSent};
$.post("convertNum.php", {"json": json}).done(function (data)
{
alert(data);
}
);
});
});
</script>
</body>
</html>
明らかに、私は数字「4」を受け取って使用することにのみ関心があるため、私の質問:返されるデータを正確に指定する最良の方法は何ですか?
私が持っていたいくつかの考え:
- すべての HTML を if ステートメント内にラップします (つまり、$num が設定されている場合は HTML を出力しません。それ以外の場合は HTML を出力します)。
- AJAX 呼び出しを受信するための別の PHP スクリプトのセットアップ: これは私が最初に行ったことであり、問題なく動作します。しかし、私はすべてを 1 つのファイル内に保持することに興味があり、そのための可能な方法を探りたいと考えていました。
これを行うエレガントな方法があると確信しています。ご提案ありがとうございます。