Ajax没有发布到MYSQL或在提交时显示成功/错误消息


Ajax not posting to MYSQL or displaying success/error message upon submit

我有一个带有一个单选框的表单,单击提交按钮时需要将其输入到数据库中。

我遇到的问题:

如何在不刷新页面的情况下自动更新。那么,如果在数据库中添加了一个选择,它会自动显示在选择选项中吗?

更新代码

   $(document).ready(function(){
$('#submitbut').click(function(e){
        var updateid = $("#updateid").val();
            if(updateid.length == 0){
            $("#success").text("make a selection.");
            $("updateid").focus();
        }
    else{
        var dataString = 'updateid='+ updateid
        $.ajax({
            type:'POST',
            url:'test.php',
            data: {updateid:dataString}
        }).done(function(){
            $('#success').text('success!');
        });
    }
        e.preventDefault();
        });    
});

提交页面的原因是您有一些语法错误。我将按随机顺序回答你的观点。

要解决验证问题,您应该检查是否存在值。您检查的不是值,而是文本节点。

您使用了

if(updateid == "--")

但是<option>标记的值为空。你应该使用这个:

if(updateid.length == 0)

对于AJAX,我喜欢使用done()函数。出于演示目的,我简化了您的代码,但它看起来像这样:

$.ajax().done(function(){
    $('#success').text('success!');
});

你还收到了两份对你没有帮助的虚假陈述。阻止表单提交的正确方法是preventDefault(),您在下面确实有它,但由于您的错误,它没有被调用。

另一个有用的方法是使用<input type="button">。这样,表单将永远不会提交。

这是一个带有工作验证和AJAX 的代码演示

  1. js不会禁用表单的默认行为。您必须从提交按钮中删除type="submit"

可能使用$('#submitbut').attr('type', '');

  1. 默认情况下禁用该按钮,并检查选择框的更改

    $('#selectbox').onChange(function(){if($(this).val()!='')$('#submitbut').removeAttr("已禁用","已禁用);其他的$('#submitbut').attr('disabled','disabled);});

  2. 对getoptions.php进行ajax调用,在这里从db中检索所有选项,并将它们与select中的选项进行比较。