代码点火器 - 将按钮值传递给表单


CodeIgniter - passing button value to form

我有这段代码(查看):

      <?php echo $own['own'] ? form_open('games/updateOwn', 'id="ownGame"') : 
             form_open('games/setOwn', 'id="ownGame"'); ?>
            <input type="hidden" name="userid" value="<?php echo $userid; ?>">
            <input type="hidden" name="gameid" value="<?php echo $game['id'];?>">
            <button value="1" name="own[]">Mam/miałem</button>
            <button value="2" name="own[]">Chcę mieć</button>
            <button value="3" name="own[]">Nie interesuje mnie</button>
        </form>

这是将所有权放在数据库中的简单形式。模型:

public function Own($data) {
        $gameid = $this->input->post('gameid');
        $userid = $this->input->post('userid');
        $own = $this->input->post('own');
        $this->db->cache_delete('games',$gameid);
        $ins_own = array(
            'user_id' => $userid,
            'game_id' => $gameid,
            'own' => $own
        );
        $q = $this->db->insert('ownership', $ins_own);
    }

我的问题是,ownbutton的值)没有提交。我该如何解决这个问题?

这是一种解决方法,根本不是一个好的解决方案,但目前似乎有效。它最大的缺陷是必须启用JavaScript。但是,尽管如此,它是:

视图

            <input type="hidden" name="own" value="" id="own">
            <button value="1"<?php echo $own['own'] == '1' ? ' class="selected"' : ''; ?>>Mam/miałem</button>
            <button value="2"<?php echo $own['own'] == '2' ? ' class="selected"' : ''; ?>>Chcę mieć</button>
            <button value="3"<?php echo $own['own'] == '3' ? ' class="selected"' : ''; ?>>Nie interesuje mnie</button>

JavaScript (jQuery):

    $('form#ownGame button').each(function() {
        $(this).click(function() {
            var val = $(this).val();
            $('#own').val(val);
            return false;
        })
    })

我希望它可以帮助某人。但我仍然愿意接受你的任何新主张或答案!

默认情况下,

<button>将具有一种按钮类型,因此您应该为每个按钮添加type="submit"以使其正常工作。

<button type="submit" value="1" name="own">Mam/miałem</button>
<button type="submit" value="2" name="own">Chcę mieć</button>
<button type="submit" value="3" name="own">Nie interesuje mnie</button>