PHP表单必填字段

时间:2014-02-07 19:02:12

标签: php forms

我有一个表单将通过AJAX加载到另一个页面上的div中。点击,我想检查内容的必填字段。如果未填充必填字段,我想在该字段旁边添加一条消息,如下例所示:http://www.w3schools.com/php/php_form_required.asp

如果需要名称,请在此处添加

 if (empty($_POST["name"]))
    {$nameErr = "Name is required";}
  else
    {$name=$_POST['name'];}

提交时:

<html>
<body>
<?php
// Connect to DB 
XXX

$phone=$_POST['phone'];
$category=$_POST['category'];
implode(',',$_POST['check']);
 //or something like
$checkstring="";
foreach($_POST['check'] as $checkboxes) {
  $checkstring.= $checkboxes .",";
}
$c = rtrim($checkstring);

$query = "INSERT INTO contact VALUES ('$name','$phone', '$c', '$category')";
mysql_query($query) or die('Error, insert query failed');
echo "Hi! $name. Your phone number <b> $phone </b> is in our database";
?>
</body>
</html>

在这里我会添加

<?php echo $nameErr;?>
名称字段旁边的

。 但是当我把

?> 

在php变量中,它会分解变量,因为它认为我结束了

<?php

位于表格顶部。

形式:

<?php  

// Get value of clicked button 
$button = $_GET['button']; 

$test = '<center>
<table>
    <tr>
        <td style="height: 20px;"></td>
    </tr>
</table>
<h1>Demo</h1>
<form id="ContactForm" onsubmit="return submitForm();">
<div class="form_result"> </div> 

    Name: <input name="name" type=text ><br>

    Phone: <input name="phone" type=text ><br>

    Business Capabilities:<br>
    <input type="checkbox" name="check[]" value="c1">C1<br>
    <input type="checkbox" name="check[]" value="c2">C2<br>

    <select name="category">Category:
        <option value="d1">D1</option>
        <option value="d2">D2</option>
        <option value="d3">D3</option>
    </select><br>

<input type="submit" >
</form>
</center>
'; 

print json_encode($test);

?> 

我可以将php语句放在php变量中吗?或者还有另一种更干净的方法吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

您不需要echo它。您正在创建一个巨大的HTML字符串,只需使用字符串连接来包含您的错误:

$test = 'blah blah blah '.$nameErr.' blah blah blah';

在你继续之前,停下来学习准备好的语句 - 你目前使用数据库做什么是非常危险的,并且非常容易受到sql注入攻击。 http://www.php.net/manual/en/book.pdo.php

答案 1 :(得分:0)

经过漫长的一夜,我没有完全努力使用你的代码(所以我道歉)。但我应该能够让你走上正轨。我建议在AJAX调用的submit.php页面中使用JSON作为响应。例如,您的脚本可能具有:

if(empty($_POST["name"])) {
    echo json_encode(array(
        'error' => 'Name is required.'
    ));
} else {
    // Do form stuff here

    echo json_encode(array(
        'phone' => $phone
    ));
}

然后在您的AJAX调用中,您可以轻松处理您的JSON(以更模块化的方式,允许您轻松更改您的响应/布局)。

$.ajax('submit.php', {
    // Settings
    dataType: 'json' // We want JSON response, this will parse it as an object
}).done(function(data) {
    if(data.error !== 'undefined') {
        alert('Error: ' + data.error);
    } else {
        alert('Your phone number is ' + data.phone);
    }
});

随意询问您是否需要更多解释我在这里做的事情。