试图使用2 isset 1按钮

问题描述:

对不起,如果这是重复的 -试图使用2 isset 1按钮

我愿意知道我该怎么做,因为它是我的代码不工作。

echo'<form action="" method="POST"><input type="submit" value="Test" name="Test"></form> '; 

if (isset($_POST['Test'])) { 
$item_name="Plume"; 
$id_vente=2; 
} 

if(isset($_POST['submit'])) { 
// Do some stuff 
} 
+1

您的表单中没有'vendre1plume'或'submit'元素。只是* type *'submit'它不会设置'$ _POST ['submit']',它必须改为输入的名称。 – DontVoteMeDown

+2

你只有$ _POST [ '测试'] –

+0

如果(isset($ _ POST [ '测试'])){ //做一些东西 } 只有这将工作 –

如上所述,您需要确保获取并检查正确的键值。 name="Test"是关键价值,所以你需要寻找。要改变形式能够匹配你的两个if条件:

<form action="" method="POST"> 
    <input type="hidden" name="Test" value="bugs" /> 
    <input type="submit" name="submit" value="TEST" /> 
</form> 

提交这份表格,输出:

Array 
(
    [Test] => bugs 
    [submit] => TEST 
) 

这将满足isset($_POST['Test'])isset($_POST['submit'])条件。

我觉得它更容易做一个动作名称:

<form action="" method="POST"> 
    <!-- Hiding an action word will tell which script to run --> 
    <input type="hidden" name="action" value="do_some_action" /> 
    <input type="submit" name="submit" value="TEST" /> 
</form> 

这将提交:

Array 
(
    [action] => do_some_action 
    [submit] => TEST 
) 

然后,我会有些观察者会监听行动:

<?php 
# Check that an action has been sent 
if(!empty($_POST['action'])) { 
    # Create a switch to do the action 
    switch($_POST['action']) { 
     case('do_some_other_action'): 
      // Do some other script 
      break; 
     case('do_some_action'): 
      // Do some script 
      break; 
    } 
} 
+0

隐藏的输入正是我一直在寻找的,谢谢你! –

使用array_key_exists('vendre1plume', $_POST)而不是isset()

+0

使用你的方法检查不会使他们的脚本工作。它会产生相同的结果,因为它们的表单中没有'vendre1plume'或'submit'键。您只是建议一种替代方法来检查密钥是否已设置,哪些不会。 – Rasclatt