0

如果出现以下情况,我想<form>自动提交:

if(isset($_POST['action']) && ($_POST['action'] =='confirmado')){

提交表格。

我不知道我是否应该使用 javascript 脚本。我尝试这样做,但它不起作用。

<script>

    if(isset($_POST['action']) && ($_POST['action'] =='confirmado')){
    $("#form").submit(function(){
    document.form.submit(); 
    return false;
    }

</script>
4

4 回答 4

3

您正在尝试将 PHP(一个server-side language.)与 Javascript(一个client-side language. 所以,那是行不通的。

此外,a 的提交<form>不会在其 $_POST 数组中捕获为 $POST['action']。提交的方法是POST$_POST数组包含通过表单的html元素提交的数据。

于 2012-11-19T19:44:50.050 回答
1

尝试这个:

$( '#form' ).submit(function () {
    if ( this.action !== 'confirmado' ) return false;
});
于 2012-11-19T19:47:14.517 回答
0

首先,我同意 coder1984:您正在将 PHP 与 Javascript 混合,并且您试图在客户端访问 POST 数据,这是不可能的。如果我能猜到你想要做什么,也许这段代码会对你有所帮助:

<script type="text/javascript">
if (<?php echo (isset($_POST['action']) && ($_POST['action'] =='confirmado')) ? '1' : '0'; ?>) {
  document.form.submit();
}
</script>
于 2012-11-19T19:51:03.610 回答
0

如果我正确理解您的代码,您只想在“action”字段等于“confirmando”时提交表单。既然你已经在使用 jQuery,让我们继续使用它。

JavaScript:

<script>
        $('document').ready(function() {
            $('input[name=action]').change(function() {
                if($(this).val() == 'confirmando') {
                    $('form').submit(); // If you would like to do a normal sumbit
                    $.post('my_php_file.php', $('form').serialize(), function(data)) { // or use AJAX
                        /* var data now contains the output of the PHP file  */
                    }
                }
            });
        });
    </script>

当您从表单接收数据时,在 PHP 中检查提交的表单仍然有意义。

于 2012-11-19T20:03:38.383 回答