$ .ajax serialize()不会将数据传递给php文件

时间:2013-05-09 06:11:12

标签: ajax

代码中有什么不对?无法将数据传递给_autosave.php

<script type="text/javascript">
    $(document).ready(function(){
        autosave();
    });

    function autosave() {
        var t = setTimeout("autosave()", 5000);
        var inputValues= $('.input_form').serialize();
        $.ajax( {
            type: "POST",
            url: "_autosave.php",
            data: inputValues,
    } )
    .done(function(data){
        alert(data);
    });
    ...

输入就是这个

 <form id="input_form" autocomplete="off" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) ?>" 
       method="post">
    <input type="text" name="input" id="input">

_autosave.php就是这个

$input = $_POST['input'];
echo $input .' input<br>';

如果我在输入中输入一些值,请获取input<br>而不是输入值

更新 如果有人可能需要这里是工作代码

$.post("_autosave.php", $("#form1").serialize(), function(data) {
    $('#load').html(data);
    $('#is_row_changed1').val(0)
});

2 个答案:

答案 0 :(得分:0)

这里有一个尾随逗号,导致javascript无效:

data: inputValues,

以下是您可以修复(并改进当前代码)的方法:

<script type="text/javascript">
    $(document).ready(autosave);

    function autosave() {
        window.setTimeout(autosave, 5000);
        var inputValues = $('.input_form').serialize();
        $.ajax({
            type: "POST",
            url: "_autosave.php",
            data: inputValues
        })
        .done(function(data) {
            alert(data);
        });
    }
</script>

或者如果您更喜欢速记:

<script type="text/javascript">
    $(document).ready(autosave);

    function autosave() {
        window.setTimeout(autosave, 5000);
        var inputValues = $('.input_form').serialize();
        $.post("_autosave.php", inputValues, function(data) {
            alert(data);
        });
    }
</script>

答案 1 :(得分:0)

您是否尝试过使用serializeArray()

<script type="text/javascript">
$(document).ready(autosave);

function autosave() {
    window.setTimeout(autosave, 5000);
    $.post("_autosave.php", $('.input_form').serializeArray(),
     function(data) {
        alert(data);
    });
}
</script>