如何获得我在PHP中点击的按钮发布多个提交按钮

时间:2015-10-19 06:41:30

标签: javascript php jquery html codeigniter

我在一个表单中使用多个提交按钮。

我会在普通帖子中找到我点击的按钮。但是当我使用javascript this.form.submit()时,我没有得到我点击的按钮。

是否有任何解决方案可以在不使用隐藏字段的情况下识别按钮。

<script type="text/javascript" >
 $("input#add").click(function(e) {  
		e.preventDefault();
        $("<div>Do you want to continue ? </div>").dialog({
        	modal: true,
        	buttons: {
                "Ok": function() {        	
                    $(this).dialog("close");
                    this.form.submit();
                },
                "Cancel": function() {
                    $(this).dialog("close");
                }
            }
        });
	});
		
  $("input#subtract").click(function(e) {  
		e.preventDefault();
        $("<div>Do you want to continue ? </div>").dialog({
        	modal: true,
        	buttons: {
                "Ok": function() {        	
                    $(this).dialog("close");
                    this.form.submit();
                },
                "Cancel": function() {
                    $(this).dialog("close");
                }
            }
        });
	});
</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")) 
{
	$save_status = 1;
}

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

5 个答案:

答案 0 :(得分: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

之后

答案 1 :(得分: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>

答案 2 :(得分:0)

是的,根据@Niranjan,</script>应该在你的脚本中。除此之外,在您的脚本中,您可以拥有一个隐藏的输入字段。说&#34; clicked_button&#34;。

<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);

然后你可以设置switch case或if-else条件来执行你想要的动作。

答案 3 :(得分:0)

尝试输入按钮。

因为你已经在jquery中有两个单独的click事件绑定

答案 4 :(得分: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>