0
我在表单中有这个php代码。我用pdo进入mysql数据库并插入数据。一个简单的表单,用户输入他的姓名,电子邮件,评论和复选框。我在jQuery的移动环境中使用它。 ?如何在成功提交后使用php PDO清除表单
<?php
$hostname = 'localhost';
$username = 'root';
$password = '';
$dbName = 'database';
try
{
$dbh = new PDO("mysql:host=$hostname;dbname=$dbName", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->exec('SET NAMES "utf8"');
}
catch(PDOException $e)
{
echo "Sorry, you are experiencing server Error: ".$e->getMessage();
exit();
}
if(isset($_POST['sendEmail']))
{
try
{
$senderName = $_POST['sendName'];
$senderEmail = $_POST['sendEmail'];
$comments = $_POST['comments'];
if (isset($_POST['offer'])) {
$offer = 1;
} else {
$offer = 0;
}
$dateTimeSent = date('Y-m-d H:i:s');
$q= "INSERT INTO comments(sendName, sendEmail, comments, offer, dateTimeSent) VALUES (:sendName, :sendEmail, :comments, :offer, :dateTimeSent);";
$query = $dbh ->prepare($q);
$results = $query->execute(array(
":senderName"=>$sendName,
":senderEmail"=>$sendEmail,
":comments"=>$comments,
":dateTimeSent"=>$dateTimeSent,
":offer"=>$offer,
));
}
catch (PDOException $e)
{
$error = 'Error adding elements to database: ' . $e->getMessage();
include 'error.html.php';
exit();
}
exit();
}
>
这是我使用的形式:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" name="comments" id="comments">
<div data-role="fieldcontain">
<label for="sendName">From: </label>
<input type="text" name="sendName" class="validate[required"] id="sendName" data-clear-btn="true" placeholder="Enter name" required >
</div>
<div data-role="fieldcontain">
<label for="sendEmail">Email: </label>
<input type="email" name="sendEmail" id="sendEmail" class="validate[required,custom[email]]" data-clear-btn="true" placeholder="[email protected]" required >
</div>
<label for="comments"></label>
<textarea name="comments" id="comments" value="comments"></textarea>
<label for="offer">
<label for="offer">
<input name="offer" type="checkbox" id="offercheckbox">Please check</label>
</label>
<input type="button" name="Send Email" value="Submit" id="suggestSubmit" onclick="submitForm()">
</form>
我的问题是,我试图找出如何成功提交后,清除表单域。我找到了一个使用jquery onclick函数的选项。我表单标签结束前插入此代码:
<script>
function submitForm() {
$('form[name="comments"]').submit();
$('input[type="email"], textarea').val('');
$('input[type="text"], textarea').val('');
}
</script>
但是,如果形式提交,但在jQuery验证失败,即使提交失败,因为所有的字段将被清除,但不限于形成验证。因此,修复错误时用户必须重新输入所有表单域中的所有数据。不好。
我检查了其他答案在这里和其他在线来源,但我似乎无法使它的工作。
如果我在jQuery Mobile中使用PHP-PDO,成功提交后清除表单域的最佳方法是什么?
PS。我是一个新手。谢谢。
谢谢您的即时回复。我一定会尝试这个选项。一旦我完成代码,我会进行检查。 – Synod
谢谢@ Ma'moon Al-Akash,我不仅做了一次成功的清算,而且还通过将UX重定向到一个thnx页面来改进用户体验(稍后我会做,但我一举两得)。放置标题一直是个挑战,但我能够通过使用逻辑和反复试验来找到它。 – Synod
还有一件事,我注意到我应该在表单标签中放置data-ajax =“false”才能使其工作。 – Synod