【发布时间】:2013-01-01 20:13:33
【问题描述】:
假设我有一个想要提交的表单。我已经构建了它和表单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 关闭并返回关联数据数组时使用。然后我有一个 ajaxData.php,它返回 json 但基本上是相同的 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);
}
?>
在我看来这是低效的,因为我正在编写相同的代码、相同的数据访问等...两次 - 一次用于 form.php,一次用于 ajaxdata.php。
我应该如何构建我的表单/文件,以便 ajax 使用与普通表单提交相同的数据库访问和 sql 代码?
【问题讨论】:
标签: php jquery ajax pdo graceful-degradation