0

您好,我有 html 表,我在其中列出了数据库结果。所有数据库项都有带有值项 id 的 self 复选框:

<td> <input type="checkbox" id="row" value="<?php echo $this->escapeHtml($item->id);?>"> </td> 

现在我想取一个或多个检查项目,并将该值放入我的网址中,如最后一个参数。

<a onclick="return Form.deleteItem(this);" href="<?php echo $this->url('phonebook', array('action'=>'edit', 'id' => '1'));?>">
    <?php echo $this->escapeHtml('Edit');?>
</a> 

我希望像这样在 url 中添加价值。

http://www.example.com/edit/1

因此,如果用户检查一个项目并单击编辑如何将该值放入 url 中,如最后一个参数

我试试这个但不工作:

deleteItem: function(obj) {
    $('input[type=checkbox]').change(function(e){
        e.preventDefault();
        if ($("#row").is(':checked')) {
            //read line
            var queryString = $("#row").val();
            // Loop 
            var s = $("#row").siblings();
            $.each(s, function() {
                // see if checked
                if ($("#row").is(":checked")) {
                    queryString += 'OR' + $("#row").val();
                }
            });

            console.log(queryString);

            // Append to url 
        }
    });

},
4

2 回答 2

0

我希望我说对了。这是有关如何实现此目的的示例。此代码会将所有以逗号分隔的选定值附加到editordelete路由。

HTML

<label><input class="row" type="checkbox" value="1"> 1</label>
<label><input class="row" type="checkbox" value="2"> 2</label>
<label><input class="row" type="checkbox" value="3"> 3</label>
<label><input class="row" type="checkbox" value="4"> 4</label>

<a class="action" href="http://www.example.com/edit/">Edit</a> 
<a class="action" href="http://www.example.com/delete/">Delete</a> 

JavaScript

$('a.action').click(function() {
    var v = $('input.row:checked').map(function () { return this.value; }).get().join(',');

    $(this).attr('href', $(this).attr('href') + v);
});

映射和连接值的代码来自this answer

演示

先试后买

于 2013-08-31T16:13:43.507 回答
0

insertusernamehere 是绝对正确的。您的 HTML 无效,jQuery 函数仅返回第一个 id 为“row”的复选框。这是一个例子:

HTML:

Row Checkboxes: <br />
<input id="row" type="checkbox" name="checkboxOne" value="yes" />
<input id="row" type="checkbox" name="checkboxTwo" checked="checked" value="yes" />
<br />
Test checkboxes:<br />
<input id="test" checked="checked" type="checkbox" name="checkboxThree" value="yes" />
<input id="test" type="checkbox" name="checkboxFour" value="yes" />

JS:

//returns false, because it gets the value of only the first #row checkbox
console.log($('#row').is(':checked'));

//returns true, because it only gets the checked attribute of the first #test checkbox
console.log($('#test').is(':checked'));

//only returns the first #row box
console.log(document.getElementById('row'))

见小提琴:http: //jsfiddle.net/Br85c/1/

于 2013-08-31T16:26:43.403 回答