数据未传递给ajax函数

时间:2014-06-30 12:14:55

标签: javascript php jquery ajax html-table

下面的表单存在于html表的每一行中。但是,警告(“dfd”)仅弹出表的第一行而不是其他行中的表单(这些表单显示在网页上)任何人都可以告诉它为什么会这样?

HTML:

 <form class='form form-horizontal' method='post' role='form' id='formsel' name='formsel'>
        <fieldset  >   
        <div>    
            <span class='control-group' >
            <span  class='controls'>
                <select id='formcont' name='formcont' class='form-control' style='cursor:pointer;'>
                    <option selected='selected' style='display:none;'>Select</option>
                    <option  value='1'>Option1</option>
                    <option  value='2'>Option2</option>
                    <option  value='3'>Option3</option>

            </select> <button id='selbtn' name='selbtn' type='submit'>Sub,it</button>

            </span>
            </span></div>

        </fieldset>

    </form>

JS:

$("#formsel").submit(function () {
    alert("dfd");
    $.ajax({
        url:"add.php",
        data:$("#formcont").val().serialize(),
        type:"POST",
        success:function(data){
            console.log(data);
            if(data=="done"){
                alert("success");
            } 
        },
        error:function(data){
            alert("Network ERROR");
        }
    })
    return false;
});


$("#selbtn").click(function () {
  ("#formsel").submit();
});

PHP:

 <?php
    include ('db.php');
    session_start();

    echo "done";
    ?>

1 个答案:

答案 0 :(得分:0)

是的,因为您没有发送任何数据:

$("#formcont").val().serialize()

应该是:

$(this).serialize()

由于您单击以触发submit的按钮是提交按钮,因此您实际上不需要以下代码:

$("#selbtn").click(function () {
  ("#formsel").submit();
});