繁体   English   中英

如何在页面加载时使用ajax提交隐藏表单?

[英]How do i submit a hidden form using ajax when the page loads?

如何在页面加载时使用ajax向php提交隐藏表单?

我有一个带有一个隐藏值的表单我想要提交而不刷新页面或来自服务器的任何响应消息。 如何在ajax中实现这个? 这是我的表格。 我在同一页面上还有另一种表格。

<form id = "ID_form" action = "validate.php" method = "post">
 <input type = "hidden" name = "task_id" id = "task_id" value = <?php echo $_GET['task_id'];?>>
</form>

类似于Zafar使用jQuery的答案

实际上是jquery网站上的一个例子https://api.jquery.com/jquery.post/

$(document).ready(function() {
    $.post("validate.php", $("#ID_form").serialize());
});

如果你想对你说你不想要的响应做任何事情,你可以.done(),. fail()和.always()。

在纯JavaScript中

body.onload = function() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("POST","validate.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("task_id=" + document.getElementById("task_id").value);
};
I think you have doubts invoking ajax submit at page load. Try doing this -

<script type="text/javascript">
$(document).ready(function(){
    $.ajax({
        "url": "validate.php",
        "type": "post"
        "data": {"task_id": $("#task_id").val();},
        "success": function(){
        // do some action here
        }
    })
})
</script>

如果您正在使用jQuery,您应该能够获取表单,然后在其上调用submit()

例如:

var $idForm = $('#ID_form');
$idForm.submit();

简单的解决方案 - jQuery AJAX发布其他人建议的值,但直接嵌入PHP值。 如果您有多个表单,则可以根据需要添加更多键:值对。 如果需要,添加成功/错误处理程序。

<script type="text/javascript">
$(document).ready(function(){
    $.post( "validate.php", { task_id: "<?=$_GET['task_id']?>" } );
})
</script>

正如其他人所说,如果你想在后台发送数据,则不需要表单。

validate.php

<?php

$task_id = $_POST['task_id'];

//perform tasks//

$send = ['received:' => $task_id]; //json format//
echo json_encode($send);

JQuery的/ AJAX:

$(function() { //execute code when DOM is ready (page load)//
    var $task = $("#task_id").val(); //store hidden value//
    $.ajax({
        url: "validate.php", //location to send data//
        type: "post",
        data: {task_id: $task},
        dataType: "json", //specify json format//
        success: function(data){
            console.log(data.received); //use data received from PHP//
        }
    });
});

HTML:

<input type="hidden" name="task_id" id="task_id" value=<?= $_GET['task_id'] ?>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM