我有一个表单将通过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变量中吗?或者还有另一种更干净的方法吗?谢谢你的帮助。
答案 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);
}
});
随意询问您是否需要更多解释我在这里做的事情。