送信したいフォームがあるとします。私はそれとフォームを構築しましたaction=""
。そのため、投稿されたデータには次の方法でアクセスできますif(isset($_POST['something']))
例 form.php (コードはチェックされておらず、要点を説明するためのものです):
<?php
$result = '';
if (isset($_POST['something']) {
$sql = 'SELECT * FROM aTable WHERE Name = :name';
$stmt = $db->prepare($sql);
$stmt->execute(array(':name' => $_POST['something']);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
?>
<form action="" method="post">
<input type="text" name="something" />
<input type="submit" value="post" />
</form>
<div id="result">
<pre>
<?php echo $result; ?>
</pre>
</div>
ユーザーがjsを有効にしている場合、jquery/jsでフォームを処理したいと思います。
私はこれを行う方法を知っています。ただし、2 つの php ファイルで同じクエリを実行するなど、データベース アクセスに問題があります。jsがオフになり、データの連想配列を返すときに使用される元のフォームページの1つ。次に、json を返す ajaxData.php がありますが、基本的には同じ SQL クエリです。
例 AJAXDATA.php
<?php
$result = '';
if (isset($_POST['something']) {
$sql = 'SELECT * FROM aTable WHERE Name = :name';
$stmt = $db->prepare($sql);
$stmt->execute(array(':name' => $_POST['something']);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
}
?>
私の意見では、同じコード、同じデータアクセスなどを 2 回 (form.php 用に 1 回、ajaxdata.php 用に 1 回) 書いているため、これは非効率的です。
ajaxが通常のフォーム送信と同じデータベースアクセスとSQLコードを使用するように、フォーム/ファイルをどのように構成すればよいですか?