JQuery Ajax序列化方法不起作用?

时间:2015-06-09 19:04:15

标签: php jquery ajax

我正在尝试使用jquery提交表单,我不确定为什么表单总是空的。我只是在一个表单中运行一个while循环,并有一组具有不同名称的输入,我想在div标签“karma”中打印它的值。

编辑:我想在每次点击按钮时打印出整个表格。

这是index.php文件

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

    <script type="text/javascript">

    function get() {
        var data = $('forma').serialize();
        console.log(data);
        $.post('data.php', data,
            function(output) {
                $('#karma').html(output).show();
            });
    }

    </script>

</head>


<body>
<div id="karma"></div>

    <form name="forma">
    <?php 
        $x = 5;
        while ($x) {
            ?>
            <?php
            echo "<input type='hidden' name='listid_". $x ." ' value=" . $x . ">";
            $x = $x - 1;
            ?>
            <input type="button" name='butid_<?php echo $x; ?>' value="Get" onClick="get();">

            <?php
        }
    ?>
    </form>
    <!-- <input type="hidden" name="listid" value="HELO"> -->

</body>
</html>

这是data.php文件

<?php 
echo "geki";
var_dump($_POST);
?>

我很感激帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

forma不是默认的html元素。您必须使用正确的ID设置。

更改

  var data = $('forma').serialize();

  var data = $('#forma').serialize();

 <form name="forma">

   <form id="forma">

答案 1 :(得分:0)

这是你的问题:

$('forma') 

这不是元素或元素的id,如果你试图通过它的名字来获取元素,那么这就是为什么你不能用jQuery选择器找到它

但如果你把它改为:

var data = $('form[name='forma']).serialize();

您将能够通过名称

引用元素

或者如果在表单中添加一个id字段,那么使用jQuery按id获取元素:

<form name="forma">
var data = $('#forma').serialize();

那应该有用