2015-10-19 16 views
0

我在單個窗體中使用多個提交按鈕。我將如何獲得我在PHP中單擊的按鈕後多個提交按鈕

我會得到我點擊的按鈕,在正常的職位。但是,當我使用JavaScript this.form.submit()時,我沒有得到我點擊的按鈕。

是否有任何解決方案來識別按鈕而不使用隱藏字段。

<script type="text/javascript" > 
 
$("input#add").click(function(e) { 
 
\t \t e.preventDefault(); 
 
     $("<div>Do you want to continue ? </div>").dialog({ 
 
     \t modal: true, 
 
     \t buttons: { 
 
       "Ok": function() {   \t 
 
        $(this).dialog("close"); 
 
        this.form.submit(); 
 
       }, 
 
       "Cancel": function() { 
 
        $(this).dialog("close"); 
 
       } 
 
      } 
 
     }); 
 
\t }); 
 
\t \t 
 
    $("input#subtract").click(function(e) { 
 
\t \t e.preventDefault(); 
 
     $("<div>Do you want to continue ? </div>").dialog({ 
 
     \t modal: true, 
 
     \t buttons: { 
 
       "Ok": function() {   \t 
 
        $(this).dialog("close"); 
 
        this.form.submit(); 
 
       }, 
 
       "Cancel": function() { 
 
        $(this).dialog("close"); 
 
       } 
 
      } 
 
     }); 
 
\t }); 
 
</script> 
 
    
 
<form name="my_form" action="processor.php" method="post"> 
 
<br> <br> 
 
Enter a number: <input type="text" name="number" size="5"> 
 
<br> <br> 
 
<input type="submit" name="add" id="add"value="Add 10"> 
 
<input type="submit" name="subtract" id="subtract" value="Subtract 10"> 
 
</form>

,我需要檢查如下的服務器代碼。

if($this->input->post("add")) 
 
{ 
 
\t $save_status = 1; 
 
} 
 

 
if($this->input->post("subtract")) 
 
{ 
 
\t $save_status = 2; 
 
\t \t \t \t 
 
}

回答

3

你有一個小錯誤,你沒有關閉<script>

<script type="text/javascript" > 
    $("input#add").click(function(e) { 
    this.form.submit(); 
    $("input#add").attr('disabled', 'disabled'); 
    }); 

    $("input#subtract").click(function(e) { 
    this.form.submit(); 
    $("input#subtract").attr('disabled', 'disabled'); 
    }); 
<script>// this line it shud be </script> 

這會幫助你。

IN processor.php

print_r($_POST);// you should be able to get expected result. 

看到demo這裏

主要的PHP代碼here

表格後提交代碼here

+0

感謝Niranjan,那是錯誤的。請加上有問題的 – Sumesh

+0

。因爲它沒有格式化,所以它需要通過代碼。 –

+0

e.preventDefault();會造成問題.. – Sumesh

0

是,按照@Niranjan的</script>應該有在你的腳本中。除此之外,在你的腳本中,你可以有一個隱藏的輸入字段。說「clicked_button」。

<input type="hidden" name="clicked_button" id="clicked_button"> 

而且在你的Javascript:

$("input#add").click(function(e) { 
    $("#clicked_button").val("add_button"); 
    this.form.submit(); 
    $("input#add").attr('disabled', 'disabled'); 
}); 

$("input#subtract").click(function(e) { 
    $("#clicked_button").val("substract_button"); 
    this.form.submit(); 
    $("input#subtract").attr('disabled', 'disabled'); 
}); 
在你的PHP腳本

而現在,在表單提交代碼 - 如果打印以下POST變量;你應該能夠得到您單擊按鈕:

print_r($_POST); 

然後你可以把任何一個開關盒或如果其他條件來執行所需的操作。

+0

我認爲不需要那樣。沒有它的工作正常對我... –

+0

謝謝,我不允許在我的代碼中使用隱藏的字段,我需要知道是否有解決方案...謝謝 – Sumesh

0

嘗試鍵入按鈕。

正如你已經擁有jQuery的兩個單獨的單擊事件綁定

1

試試這個

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript" > 
$(document).ready(function(){ 

    $(document).on('click','#add',function() { 
     this.form.submit(); 
    $("#add").attr('disabled', 'disabled'); 
    }); 

    $(document).on('click','#subtract',function() { 
    this.form.submit(); 
    $("#subtract").attr('disabled', 'disabled'); 
    }); 
    }); 
</script> 

<form name="my_form" action="#" method="post"> 
<br> <br> 
Enter a number: <input type="text" name="number" size="5"> 
<br> <br> 
<input type="button" name="add" id="add"value="Add 10"> 
<input type="button" name="subtract" id="subtract" value="Subtract 10"> 
</form> 
0

您可以通過使用ONCLICK與輸入型的「按鈕」

<script type="text/javascript" > 

    function submitForm(id){ 
    alert(id); 
    $('#my_form').submit(); 
    $("input#"+id).attr('disabled', 'disabled'); 
    } 
</script> 

<form name="my_form" id="my_form" action="processor.php" method="post"> 
<br> <br> 
Enter a number: <input type="text" name="number" size="5"> 
<br> <br> 
<input type="button" name="add" id="add"value="Add 10" onClick="submitForm(this.id)"> 
<input type="button" name="subtract" id="subtract" value="Subtract 10" onClick="submitForm(this.id)"> 
</form> 
做簡單的方式相同
相關問題