我有两个问题,但它们是相互关联的。首先,我试图使我的表单字段成为必需。我已经完成了这个,但似乎我的表单仍然在提交空白表单时调用我的PHP脚本。如果表单为空,我怎样才能使我的验证不调用php脚本?
其次,我想将图像的url存储到我的数据库中。如何将预先确定的字符串提交到我的数据库中?我只用表格完成了数据库提交。
这是我的验证并尝试将字符串发送到php脚本。
function validateForm()
{
var x=document.forms["subform"]["school"].value;
var y=document.forms["subform"]["confession"].value;
if (x==null || x=="" || y==null || y=="")
{
alert("Please complete the form before submitting your confession.");
return false;
}
if(x=="CWU"){
$.post('test3.php', $("images/colleges/cwu.png").serialize(), function(data) {
$('#content').html(data);});
}
}
这是我试图提交到测试表中image列的php脚本。
<?php
// Create connection
$con=mysqli_connect("localhost","root","","test");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO test (image)
VALUE
('$_POST[image]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "image added";
?>
答案 0 :(得分:1)
如果您想阻止表单在客户端提交之前甚至可以访问服务器,您可以执行以下操作:
$('#myform').submit(function(e) {
var input = $('#myform input').val();
if(input == '') {
//won't allow the form to submit
e.preventDefault();
} else {
//do something
}
});
如果要使用PHP在服务器端实现它,可以执行以下操作:
$input = $_POST['val'];
if(!empty($input)) {
//carry out the request
} else {
echo "You did not fill out the form!"
}
如果使用服务器端选项,最好在AJAX环境中实现,这样用户在提交表单时甚至不会离开页面,然后收到错误消息。这会稍微扰乱流程。