我有4个必填字段。我使用AJAX表单处理,在表单提交之前提交表单时,它会检查论坛元素是否为空。使用以下 PHP 代码。
if(isset($_REQUEST['faq_topic'], $_REQUEST['faq_detail'], $_REQUEST['faq_name'], $_REQUEST['faq_email'])){
现在即使表格留空,也会因某种原因而提交?为什么会这样?难道不会发生这种情况吗?除了可以提交空白数据之外,该表格完美无缺。
这是整个脚本...减去HTML / jQuery
// Required Configuration
include_once('required.php');
// get data that sent from form
$topic=$_REQUEST['faq_topic'];
$detail=$_REQUEST['faq_detail'];
$name=$_REQUEST['faq_name'];
$email=$_REQUEST['faq_email'];
// check if all forms are filled out
if(isset($_REQUEST['faq_topic'], $_REQUEST['faq_detail'], $_REQUEST['faq_name'], $_REQUEST['faq_email'])){
// Format Date And Time
$datetime=date("m/d/y h:i");
// SQL Insert Statement
$sql="INSERT INTO $tbl_name_question(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')";
// Check If SQL Went Through
$result=mysql_query($sql);
// Now Print Out Success Or MySQL Error
if($result){
$html = '<div class="alert alert-dismissable alert-success"><button type="button" class="close" data-dismiss="alert">×</button>You <strong>successfully</strong> submited a question to the FAQ bored.</div>';
print($html);
}
else {
$html = '<div class="alert alert-dismissable alert-danger"><button type="button" class="close" data-dismiss="alert">×</button>Opps there was a problem on our end... Please try again later.</div>';
print($html);
}
// Close MySQL Connection
mysql_close();
} else {
// If the required items were not filled out print the following
$html = '<div class="alert alert-dismissable alert-danger"><button type="button" class="close" data-dismiss="alert">×</button><strong>All</strong> forms are required.</div>';
print($html);
}
如果你有建议那就太棒了!另外,如果你对我在我的代码中做错的事情有任何其他意见,那么如果你能在那里帮助我也会很好。
非常感谢提前!!
最诚挚的问候!
答案 0 :(得分:1)
isset
检查变量是否已设置,即使变量包含空字符串,也会设置变量。
如果要检查变量是否为空,则应使用empty
代替。
执行类似
的操作$topic=trim($_REQUEST['faq_topic']);
$detail=trim($_REQUEST['faq_detail']);
$name=trim($_REQUEST['faq_name']);
$email=trim($_REQUEST['faq_email']);
if (!empty($topic) && !empty($detail) && !empty($name) && !empty($email)) {
答案 1 :(得分:0)
isset()检查是否完全定义了变量。由于我假设您将变量发布为空,因此变量已设置,但值为空。
您需要使用的是empty(),它将决定变量的值是否留空。
if(!empty($_REQUEST['faq_topic']) && !empty($_REQUEST['faq_detail']) && empty($_REQUEST['faq_name']) && !empty($_REQUEST['faq_email']))
答案 2 :(得分:0)
删除可以执行的警告
$topic= isset($_REQUEST['faq_topic']) ? $_REQUEST['faq_topic'] : '';
$detail= isset( $_REQUEST['faq_detail'] ) ? $_REQUEST['faq_detail'] : '';
然后......
if( !empty($topic) && !empty($detail) ... )
{
...
}
这可能看起来有点矫枉过正,但你会摆脱一些警告并检查空字符串。
如果您不想允许空格,可以使用trim(...)。