代码之家  ›  专栏  ›  技术社区  ›  Bruno Santos

如何在JQuery函数中获取对象的属性值?

  •  2
  • Bruno Santos  · 技术社区  · 9 年前

    所以,我使用PDO来存储数据库中的数据。 我有一个数组($myitems),其中有几个项,每个项都有两个属性:id和name。 使用PHP,我使用这个数组创建了一个列表,如下代码所示:

    在index.php中

            <ul class="items">
                <?php foreach($myitems as $item): ?>
                <li class="test">
                    <form action="edit.php" method="post">
                        <span class="itemlist"><?php echo $item['name']; ?></span>                    
                    </form>
                </li>
                <?php endforeach; ?>
    
            </ul>
    

    因此,当用户双击列表中的某个项目时,它会将跨度“转换”为输入文本,这样用户就可以更新该项目的名称。我使用JQuery成功地做到了这一点,在JQuery中,我能够获得项目的名称,因为它显示在 跨度 标签这就是我如何获取名称的值并将跨度更改为输入文本:

    在JS文件中

     $(".itemlist").dblclick(function (e) {        
                e.stopPropagation();
                var currentEle = $(this);
                var name = $(this).html();
                updateVal(currentEle, name);        
    });
    
    function updateVal(currentEle, name) {
        $(document).off('click');
        $(currentEle).html('<input class="liVal"  name="editname" type="text" value="' + name+ '" />');
    
        $(".thVal").focus();
        $(".thVal").keyup(function (event) {
            if (event.keyCode == 13) {
    
                $(currentEle).html($(".liVal").val());
            }
        });
    }
    

    它在浏览器中运行良好,但要更新数据库中项目的值,我需要提交表单,我就是这样做的:

    也在JS文件中

    $(".liVal").onkeyup(function(event) {
        if (event.keyCode == 13) {
            this.form.submit();
            return false;
         }
    });
    

    提交表单后,我可以在编辑中获得项目名称的值。php使用输入的属性名称,如下所示:

    在edit.php中

    if(isset($_POST['editname'])){
        $newname= trim($_POST['editname']);     
    }
    

    但是,要更新一个项目,我还需要它的id 问题 ,如何获得身份证?我对PHP和JQuery非常熟悉,我需要帮助。

    1 回复  |  直到 9 年前
        1
  •  2
  •   Jeremy Harris    9 年前

    您需要将ID添加为表单中的隐藏输入字段。

    <ul class="items">
        <?php foreach($myitems as $item): ?>
            <li class="test">
                <form action="edit.php" method="post">
                    <!-- ADD ID BELOW -->
                    <input type="hidden" name="id" value="<?php echo($item['id']); ?>">
                    <span class="itemlist"><?php echo $item['name']; ?></span>                    
                </form>
            </li>
        <?php endforeach; ?>
    </ul>
    

    然后,当您提交表单时,它应该同时具有ID和动态元素。