我最近尝试在 MSSQL 中使用 php 的 PDO 类。我有一个带有文本框和提交按钮的表单。现在我喜欢做的是使用 jQuery 进行验证,让它运行得更快。每当 jQuery 完成验证并按应有的方式填充它时,它应该激活一个 php 函数,该函数将添加表单作为带有 PDO 类的查询。
html代码:
<div id="registreren">
<div class="titel">
<p class="big"> Registreren| </p>
<p class="small"> Registreer met jouw gewenste gegevens.</p>
</div>
<div id="form">
<form method="POST" action="" onsubmit="return false;">
<table border = '1'>
<tr>
<td>Username:</td>
<td><input type="textbox" name="txtUsername" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="txtPassword" /></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input type="textbox" name="txtEmail" /></td>
</tr>
<tr>
<td>Telefoonnummer:</td>
<td><input type="textbox" name="txtTel" /></td>
</tr>
<tr>
<td></td>
<td class="showPass"><input type="checkbox" name="showPass" />Laat password zien</td>
</tr>
<tr>
<td><p class="warning4"> <br /> </p></td>
<td><button type="submit" name="registreren" value="registreren" class="btnRegistrate">Registreren</button></td>
</tr>
</table>
</form>
</div>
jQuery代码:
var registrateEmpty;
$('.btnRegistrate').click(function() {
$('.warning4').html('');
registrateEmpty = false;
$('#registreren input').each(function() {
if($(this).val() == "")
{
$('.warning4').html('Vul alle velden in!');
registrateEmpty = true;
return false;
}
})
if(registrateEmpty!=true) {
if($('input[name=txtUsername]').val().length < 5 || $('input[name=txtPassword]').val().length < 5) {
$('.warning4').html('Username en password moeten minimaal uit 5 tekens bestaan.');
return false;
}
else if($('input[name=txtTel]').val().match(/[a-zA-Z]/) || $('input[name=txtTel]').val().length != 10) {
$('.warning4').html('Vul een geldige telefoonnummer in.');
return false;
}
else if($('input[name=txtEmail]').val().indexOf('@') == -1 || $('input[name=txtEmail]').val().length < 5) {
$('.warning4').html('Vul een geldige e-mail adres in.');
return false;
}
else {
<?php
toevoegen();
?>
$('.warning4').html('');
}
}
})
这个脚本实际上做的是它首先检查它是否有任何空输入。如果所有内容都已填写,它将检查所填写值的某些特定长度。当一切都“好”时,它将激活 php 功能
php函数:
include('connect.php');
function toevoegen() {
global $pdo;
try {
$sql = "INSERT INTO account
(acc_Username, acc_Password, acc_Email, acc_Tel, join_Date, privilege)
VALUES
(:username, :password, :email, :tel, :jdate, 1);
";
$s = $pdo -> prepare($sql); //doet hetzelfde als query() alleen moet je hier nog een trigger functie sturen
$s->bindValue(':username', $_POST['txtUsername'], PDO::PARAM_STR);
$s->bindValue(':password', $_POST['txtPassword'], PDO::PARAM_STR);
$s->bindValue(':email', $_POST['txtEmail'], PDO::PARAM_STR);
$s->bindValue(':tel', $_POST['txtTel'], PDO::PARAM_STR);
$s->bindValue(':jdate', date('d-m-Y'), PDO::PARAM_STR);
$s->execute();
$message = "Succeed!";
}
catch (PDOException $e)
{
echo 'Fout bij inserten van een rij: ' . $e->getMessage();
exit;
}
}
这样做是它首先准备 sql 语句。然后它将使用文本框值填充语句中的打开变量。
现在发生的事情是它似乎执行了 php 函数,甚至没有使用 JQuery 进行验证。我的错误:
未定义索引:txtUsername 未定义索引:txtPassword 未定义索引:txtEmail 未定义索引:txtTel
所以我希望有人知道出了什么问题,或者如何像这样一起使用 php jquery。我希望即使有些东西是其他语言,它仍然是可以理解的。提前致谢。