使用AJAX向DB添加行

时间:2014-04-15 11:38:37

标签: php jquery ajax

我有使用AJAX将测试/行添加到数据库的脚本

我添加了复选框(#main),我也想将它发送到数据库。

对于某些研究,检查与否,复选框总是向DB发送相同的值 那是为什么?

//##### send add record Ajax request to response.php #########
$("#FormSubmit").click(function (e) {
    //  e.preventDefault();
        if($("#contentText").val()==='')
        {
            alert("Please enter some text!");
            return false;
        }
        alert($("#main").val());
        var myData = 'content_txt='+ $("#contentText").val() + "&main= " + $("#main").val(); //build a post data structure
        jQuery.ajax({
        type: "POST", // HTTP method POST or GET
        url: "response.php", //Where to make Ajax calls
        dataType:"text", // Data type, HTML, json etc.
        data:myData, //Form variables
        success:function(response){
            $("#responds").append(response);
            $("#contentText").val(''); //empty text field on successful
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert(thrownError);
        }
        });
});

<div class="form_style">
    <textarea name="content_txt" id="contentText" cols="45" rows="5"></textarea>
    <input type="checkbox" name="main" id="main" />
    <button id="FormSubmit">Add record</button>
</div>

4 个答案:

答案 0 :(得分:0)

用于复选框元素.is(':checked')

代码示例:

$('#main').is(':checked');

答案 1 :(得分:0)

嗯它的价值总是一样的,不是吗?你显然不明白input[type=checkbox]是如何运作的。

输入类型复选框有一个值集,并且该值始终相同(除非您当然通过javascript更改它)。 input[type=text]input[type=checkbox]之间的区别在于,当提交父表单时,复选框不会发送它的值(同样也是一样)。

你正在做的是再次发送复选框的值,再次,它始终是相同的。

正确的行动方针是这样的:

var v = $("#main:checked").val();

只有选中复选框才会返回值。我想这就是你需要的。

答案 2 :(得分:0)

$("#main").val()会为您提供复选框的值,无论是否选中该复选框,请尝试使用.serialize()

var myData = $("#contentText,#main").serialize(); //build a post data structure

答案 3 :(得分:0)

Some info on getting values from checkbox with jquery:

var myData = 'content_txt='+ $("#contentText").val() + "&main= " + $("#main").is(":checked"); //build a post data structure