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

时间:2015-02-09 22:48:04

标签: php jquery mysql ajax

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

我遇到的问题:

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

更新代码

   $(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();
        });    
});

2 个答案:

答案 0 :(得分:1)

您的网页提交的原因是您遇到了一些语法错误。我将以随机顺序回答你的观点。

要修复验证问题,您应该检查是否有值。您检查了文本节点,而不是检查值。

您使用了

if(updateid == "--")

<option>代码的值为空。你应该改用它:

if(updateid.length == 0)

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

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

您还有2条回复虚假陈述,但对您没有帮助。阻止表单提交的正确方法是preventDefault(),你在下面做过,但是由于你的错误,它没有被调用。

另一件有用的事情是使用<input type="button">。这样,表单永远不会提交。

Here is a demo of your code with working validation and AJAX

答案 1 :(得分:0)

  1. js不会禁用表单的默认行为。你必须删除类型=&#34;提交&#34;从你的提交按钮。
  2. 也许使用$('#submitbut').attr('type', '');

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

      $(&#39; #selectbox&#39;)。onChange(function(){   if($(this).val()!=&#39;&#39;)    $(&#39;#submitbut&#39)。removeAttr(&#34;禁用&#34;&#34;禁用&#34);   其他    $(&#39;#submitbut&#39;)。attr(&#39;禁用&#39;,&#39;禁用&#39;);  });

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