0

代码中有什么不正确的地方?无法将数据传递给 _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)
});
4

2 回答 2

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>
于 2013-05-09T15:34:33.027 回答
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>
于 2013-05-09T15:41:58.860 回答