PHP-在提交按钮上停止空表单提交
我有一个html页面(edituserdetails.html),其中有一个包含3个文本框的表单:FirstName、LastName、Email和一个submit按钮。单击“提交”按钮,我正在验证这3个文本框(在函数“SaveEdit”中)。 下面是我的代码:PHP-在提交按钮上停止空表单提交,php,jquery,html,validation,smarty,Php,Jquery,Html,Validation,Smarty,我有一个html页面(edituserdetails.html),其中有一个包含3个文本框的表单:FirstName、LastName、Email和一个submit按钮。单击“提交”按钮,我正在验证这3个文本框(在函数“SaveEdit”中)。 下面是我的代码: if ($_POST['SaveUserDetails']) { $Id = $args[2]; if(empty($_POST['FirstName'])) {
if ($_POST['SaveUserDetails']) {
$Id = $args[2];
if(empty($_POST['FirstName']))
{
$this->smarty->assign('FirstNameEmpty',"Please enter your firstname!");
controller::display($this, 'tpl.edituserdetails.html');
}
if(empty($_POST['LastName']))
{
$this->smarty->assign('LastNameEmpty',"Please enter your lastname!");
controller::display($this, 'tpl.edituserdetails.html');
}
if(empty($_POST['Email']))
{
$this->smarty->assign('EmailEmpty',"Email field should not be empty!");
controller::display($this, 'tpl.edituserdetails.html');
}`
现在的问题是,同一个函数用数据库中的内容加载文本框(此代码也在SaveEdit中):
因此,当我点击“提交”按钮时,即使文本框是空的,页面也会刷新并从数据库中填充文本框。因此,我的验证无法正常工作。请帮忙。
下面是我的html(我使用Smarty变量$FirstName、$LastName和$Email来显示各自的数据。$FirstNameEmpty、$LastNameEmpty等是Smarty变量,其中包含用于验证的错误消息
<html>
<div>
<form action="" method="post" id="subscriptions" onsubmit="">
<input type="hidden" value="form" name="action">
<div class="form">
<h2><span>Edit User Details</span></h2>
<div>
<table id="im_list" class="primary_table" border="0" cellpadding="10px" cellspacing=0>
<tr>
<td>First Name</td>
<td class="bar_style"> <input type="text" name="FirstName" value="{$FirstName}"></td>
<td><font color="red">{$FirstNameEmpty}</font></td>
</tr>
<tr>
<td>Last Name</td>
<td class="bar_style"> <input type="text" name="LastName" value="{$LastName}"></td>
<td><font color="red">{$LastNameEmpty}</font></td>
</tr>
<tr>
<td>Contact email</td>
<td class="bar_style"><input type="text" name="Email" value="{$Email}"></td>
<td><font color="red">{$EmailEmpty}</font></td>
<td><font color="red">{$WrongEmailFormat}</font></td>
</tr>
<tr>
<td>
<input id="SaveUserDetails" name="SaveUserDetails" type="submit" value="Save Preferences">
</td>
</tr>
</table>
</div>
</div>
</form>
</div>
编辑用户详细信息
名字
{$firstnamempty}
姓
{$lastnamempty}
联系电子邮件
{$EmailEmpty}
{$errowemailformat}
检查我下面的方法。用false初始化标志,在每个失败的验证中使其为true 在选择查询之前,仅当没有验证错误时才向添加条件
<?php
function yourFunctionName(){
if ($_POST['SaveUserDetails']) {
$Id = $args[2];
$error = false;
if(empty($_POST['FirstName']))
{
$this->smarty->assign('FirstNameEmpty',"Please enter your firstname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['LastName']))
{
$this->smarty->assign('LastNameEmpty',"Please enter your lastname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['Email']))
{
$this->smarty->assign('EmailEmpty',"Email field should not be empty!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(!$error){
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
}
}
检查我下面的方法。在每个失败的验证中用false初始化一个标志,使其为true
在选择查询之前,仅当没有验证错误时才向添加条件
<?php
function yourFunctionName(){
if ($_POST['SaveUserDetails']) {
$Id = $args[2];
$error = false;
if(empty($_POST['FirstName']))
{
$this->smarty->assign('FirstNameEmpty',"Please enter your firstname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['LastName']))
{
$this->smarty->assign('LastNameEmpty',"Please enter your lastname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['Email']))
{
$this->smarty->assign('EmailEmpty',"Email field should not be empty!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(!$error){
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
}
}
检查我下面的方法。在每个失败的验证中用false初始化一个标志,使其为true
在选择查询之前,仅当没有验证错误时才向添加条件
<?php
function yourFunctionName(){
if ($_POST['SaveUserDetails']) {
$Id = $args[2];
$error = false;
if(empty($_POST['FirstName']))
{
$this->smarty->assign('FirstNameEmpty',"Please enter your firstname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['LastName']))
{
$this->smarty->assign('LastNameEmpty',"Please enter your lastname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['Email']))
{
$this->smarty->assign('EmailEmpty',"Email field should not be empty!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(!$error){
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
}
}
检查我下面的方法。在每个失败的验证中用false初始化一个标志,使其为true
在选择查询之前,仅当没有验证错误时才向添加条件
<?php
function yourFunctionName(){
if ($_POST['SaveUserDetails']) {
$Id = $args[2];
$error = false;
if(empty($_POST['FirstName']))
{
$this->smarty->assign('FirstNameEmpty',"Please enter your firstname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['LastName']))
{
$this->smarty->assign('LastNameEmpty',"Please enter your lastname!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(empty($_POST['Email']))
{
$this->smarty->assign('EmailEmpty',"Email field should not be empty!");
controller::display($this, 'tpl.edituserdetails.html');
$error = true;
}
if(!$error){
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
}
}
如果我理解正确,您的填写有问题。只有在我成功提交表格后,才尝试从数据库中选择。
顺便说一下,在选择之前先更新
success submited=如果通过了
子句,则为所有
例如:
if(!empty($_POST['FirstName']) && !empty($_POST['LastName']) && !empty($_POST['Email']) ){
// update
// And select
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
如果我理解正确,您的填写有问题。只有在我成功提交表格后,才尝试从数据库中选择。
顺便说一下,在选择之前先更新
success submited=如果通过了
子句,则为所有
例如:
if(!empty($_POST['FirstName']) && !empty($_POST['LastName']) && !empty($_POST['Email']) ){
// update
// And select
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
如果我理解正确,您的填写有问题。只有在我成功提交表格后,才尝试从数据库中选择。
顺便说一下,在选择之前先更新
success submited=如果通过了
子句,则为所有
例如:
if(!empty($_POST['FirstName']) && !empty($_POST['LastName']) && !empty($_POST['Email']) ){
// update
// And select
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
如果我理解正确,您的填写有问题。只有在我成功提交表格后,才尝试从数据库中选择。
顺便说一下,在选择之前先更新
success submited=如果通过了
子句,则为所有
例如:
if(!empty($_POST['FirstName']) && !empty($_POST['LastName']) && !empty($_POST['Email']) ){
// update
// And select
$x = $args[2];
$x = mysql_real_escape_string($x);
$result = db::sql("Select contact_fname,contact_lname,contact_email from billing_buyer where id = '$x'");
$row = mysql_fetch_assoc($result);
$this->smarty->assign('FirstName', $row['contact_fname']);
$this->smarty->assign('LastName', $row['contact_lname']);
$this->smarty->assign('Email', $row['contact_email']);
}
你能显示你的HTML吗?我不能很好地理解你的问题。@Kristiyan我刚刚编辑了我的问题以包含我的HTML。请看一看..好的,我认为在之后转储$\u POST是个好主意,如果($\u POST['SaveUserDetails']){
。只要写打印($\u POST)
@Kristiyan我刚刚将“LastName”留空并提交。print\u r将“LastName”显示为空。我已经用示例编辑了我的答案。你能显示你的HTML吗?我不能很好地理解你的问题。@Kristiyan我刚刚编辑了我的问题以包含我的HTML。请看一看..好的,我认为在之后转储$\u帖子是个好主意,如果($\u POST['SaveUserDetails']){
。只需编写打印($\u POST)
@Kristiyan我刚刚将“LastName”留空并提交。print\u r将“LastName”显示为空。我已经用示例编辑了我的答案。你能显示你的HTML吗?我不能很好地理解你的问题。@Kristiyan我刚刚编辑了我的问题以包含我的HTML。请看一看..好的,我认为在之后转储$\u帖子是个好主意,如果($\u POST['SaveUserDetails']){
。只需编写打印($\u POST)
@Kristiyan我刚刚将“LastName”留空并提交。print\u r将“LastName”显示为空。我已经用示例编辑了我的答案。你能显示你的HTML吗?我不能很好地理解你的问题。@Kristiyan我刚刚编辑了我的问题以包含我的HTML。请看一看..好的,我认为在之后转储$\u帖子是个好主意,如果($\u POST['SaveUserDetails']){
。只需编写打印($\u POST)
@Kristiyan我刚刚将“LastName”留空并提交。打印时显示“LastName”为空。我已经用示例编辑了我的答案。没有安全客户端解决方案。只能在服务器端完成。@很高兴我没有找到他提到的任何地方,正在查找客户端validation@Pleasure基本上,我正在寻找一个服务器sid第一,客户端验证我可以很容易地完成HTML5@RuchirSharma,它工作正常吗?你明白我的想法吗?没有安全客户端解决方案。它只能在服务器端完成。@很高兴我找不到他提到的任何地方,寻找客户端validation@Pleasure基本上我在找服务器端的t面验证我会很容易地完成HTML5@RuchirSharma,它工作正常吗?你明白我的想法吗?没有安全客户端解决方案。它只能在服务器端完成。@很高兴我找不到他提到的任何地方,寻找客户端validation@Pleasure基本上我正在寻找一个服务器端。客户端有效我会很容易地完成的HTML5@RuchirSharma,它工作正常吗?你明白我的想法吗?没有安全客户端解决方案。它只能在服务器端完成。@很高兴我找不到他提到的任何地方,寻找客户端validation@Pleasure基本上我在寻找一个服务器端,客户端验证我很容易做到