2012-11-19 40 views
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> 
+0

很难说没有你的网页的数据流。 – Sebas

+2

鉴于浏览器实现JavaScript,而不是PHP,是的,我认为你应该使用JavaScript':P' –

+0

当?在页面加载?在按钮上按? –

回答

3

您正在试图混淆PHP,这是一个server-side language,使用Javascript,这是一个client-side language。所以,这是行不通的。

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

+0

那么用PHP?我如何提交

\t if(isset($ _ POST ['action'])&&($ _POST ['action'] =='confirmado')) – user1757383

+0

首先,$ _POST ['action']'从?它是否是表单中的HTML元素的名称?或者,你指的是''元素的动作属性? –

+0

当我提交一个对话框时,它会通过动作CONFIRMADO进入这个页面。所以我只想让页面在POST ['action']确认后提交表单。 – user1757383

1

试试这个:

所有的
$('#form').submit(function() { 
    if (this.action !== 'confirmado') return false; 
}); 
0

首先,我同意coder1984:你使用Javascript混合PHP和您试图访问的客户端,这是不可能的POST数据。如果我能猜出你正在尝试做的,也许这段代码将帮助您:

<script type="text/javascript"> 
if (<?php echo (isset($_POST['action']) && ($_POST['action'] =='confirmado')) ? '1' : '0'; ?>) { 
    document.form.submit(); 
} 
</script> 
+0

它没有工作,但我认为这是最接近的答案。 – user1757383

0

如果我理解你的代码的权利,你想只提交表单如果字段“动作”等于“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中submited形式。

相关问题