Javascript/Ajax/Jquery 修改选择记录

Javascript/Ajax/Jquery modifying a select record

本文关键字:选择 记录 修改 Jquery Ajax Javascript      更新时间:2023-09-26

我有一个html表格,第一列是复选框列表(与表格行一样多)都有id="checkbox1", "checkbox2", "checkbox3"....单击按钮 ( id="modifyLink" ) 我需要找到第一个选中的复选框(如果第一个之后有任何复选框,则不会打扰),然后打开我的模态 ( id="modModal" ) 并将一个 php 页面加载到其中并发布选中复选框的值。

这就是我得出的(显然不起作用):

$function(){
    $("#modifyLink").click(function(){
        var checkbox = 'checkbox1';
        for(var i=2; getElementById(checkbox).checked == 1; i++){
            checkbox = 'checkbox'.i;
        }
        if(getElementById(checkbox)==true){
            var id = getElementById(checkbox).val();
            $(#modModal).modal('show');
            $(#modModal).innerhtml = 'load my modal with index.php/trainings/mod passing the id variable possibly in POST';
        });
};

如果我完全错了,有人可以提出完全不同的建议吗?

编辑:

好的,我已经对此进行了更多的研究,并为此而努力:

$(function() {  
  $("#trainingRow").click(function() {  
    var id = $("#trainingRow").attr('data-value');  
    var dataString = 'id='+ id;
    $.ajax({  
        type: "POST",  
        url: "/index.php/trainings/showDetail",  
        data: dataString, 
        dataType: 'json',
        success: function(data) {  
            $("div#detailModal").html(data.html);
            $("div#detailModal").modal('show');
        }  
    });
    return false;
  });  
});

但是为什么div#detailModal html 没有更新?我已经检查了 php 函数通过var_dump返回的内容以及它正是我感兴趣的 HTML 代码,但我不知道为什么它不起作用(返回的变量称为 html,我在返回之前用 php json_encode所有内容)。抬头会很好,我想我已经走得很远了,读了一点:)

你的代码很丑...但你不想这样的东西(未经测试)

$(function)({
    $("#modifyLink").click(function(){
        var checkbox = 'checkbox',
            current = null,
            i = 0;
        while (document.getElementById(checkbox + i).length == 1){
            current = $(document.getElementById(checkbox + i));
            if (current.is(':checked'))
            {
              var id = current.val();
              $.post('url', { id: id }, function(content) {
                $('#modModal').modal('show');
                $('#modModal').html(content);
              });
            }
            i += 1;
        }
});

您可以更轻松地执行此操作,如果您能够为所有复选框分配一个类,请说"myCheckboxClass"。 那么你所需要的只是这个:

$function(){
    $("#modifyLink").click(function(){
        var checkedBox = $(".myCheckboxClass:checked").first();
        var val = checkedBox.val();
        $(#modModal).modal('show');
        $(#modModal).innerhtml = 'load my modal with index.php/trainings/mod passing the id variable possibly in POST';
        });
};

或者,如果您知道表的 id,例如"myTableId",您可以进行类似的选择,只需将var checkedBox行替换为

var checkedBox = $("#myTableId input:checkbox:checked).first();
解决了

,我的ajax实际上是正确的(第二次)。问题是即使你json_encode了变量,你也无法从 PHP 返回变量。您需要json_encode它们并回响它们!

感谢大家的投入!

相关文章: