如果页面上有2个表单,如何运行2个函数?

时间:2018-06-20 22:27:27

标签: php

此处不是php guru

我有一个form,当我按下submit时,它将运行function()

<form id="saveId" action="" method="POST" class="" autocomplete="off">
    <input type="hidden" name="save_post_value" value="<?php echo $userPosts; ?>"> 
    <button  type="submit" class="save_post btn btn-danger">Save to box</button>
</form>

<?php                       
    if($_SERVER['REQUEST_METHOD']=="POST") {
        update_user_meta( $user_id, 'save_post', $userPosts );
    }
?>

用一种形式很好,但是如果我们有两种形式和功能呢?

<form id="saveId" action="" method="POST" class="" autocomplete="off">
    <input type="hidden" name="save_post_value" value="<?php echo $userPosts; ?>"> 
    <button  type="submit" class="save_post btn btn-danger">Save to box</button>
</form>

<form id="favorite" action="" method="POST" class="" autocomplete="off">
    <input type="hidden" name="save_fav" value="<?php echo $userfavs; ?>"> 
    <button  type="submit" class="save_fav btn btn-danger">Add to favs</button>
</form>

不能明显地做:

<?php                       
    if($_SERVER['REQUEST_METHOD']=="POST") {
        update_user_meta( $user_id, 'save_post', $_POST['save_post_value'] );
    }                   
    if($_SERVER['REQUEST_METHOD']=="POST") {
        update_user_meta( $user_id, 'save_fav', $_POST['save_fav'] );
    }
?>

3 个答案:

答案 0 :(得分:3)

检查设置了哪个隐藏输入。

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    if (isset($_POST['save_post_value'])) {
        update_user_meta( $user_id, 'save_post', $_POST['save_post_value'] );
    } elseif (isset($_POST['save_fav'])) {
        update_user_meta( $user_id, 'save_fav', $_POST['save_fav'] );
    }
}

答案 1 :(得分:0)

使用不同的操作URL,在“提交”按钮上使用名称和值,或使用隐藏字段。

按钮名称和值的示例:

<button type="submit" name="action" value="save_fav">Add to Favs</button>

...

if ($_POST['action'] === 'save_fav') { ... }

答案 2 :(得分:0)

<form id="saveId" action="" method="POST" class="" autocomplete="off">
    <input type="hidden" id="save_post" value="save_post|<?php echo $userPosts; ?>"> 
    <button  type="submit" class="save_post btn btn-danger">Save to box</button>
</form>

<form id="favorite" action="" method="POST" class="" autocomplete="off">
    <input type="hidden" id="save_post" value="save_fav|<?php echo $userfavs; ?>"> 
    <button  type="submit" class="save_fav btn btn-danger">Add to favs</button>
</form>

<?php                       
   if($_SERVER['REQUEST_METHOD']=="POST"){
       list($type, $value) = explode("|", $_POST['save_post']) ;
       update_user_meta( $user_id, $type, $value);
   }
?>

看看它是否有效。