将字符串提交到数据库&表格验证

时间:2013-12-30 00:49:02

标签: javascript php jquery forms

我有两个问题,但它们是相互关联的。首先,我试图使我的表单字段成为必需。我已经完成了这个,但似乎我的表单仍然在提交空白表单时调用我的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";

?>

1 个答案:

答案 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环境中实现,这样用户在提交表单时甚至不会离开页面,然后收到错误消息。这会稍微扰乱流程。