2012-11-19 93 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形式。

相關問題