Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';在php中单击按钮并使用jquery将id作为警报消息获取时,我没有获得分配给每个删除按钮的不同行id吗?_Php_Jquery_Ajax_Smarty_Smarty3 - Fatal编程技术网

I';在php中单击按钮并使用jquery将id作为警报消息获取时,我没有获得分配给每个删除按钮的不同行id吗?

I';在php中单击按钮并使用jquery将id作为警报消息获取时,我没有获得分配给每个删除按钮的不同行id吗?,php,jquery,ajax,smarty,smarty3,Php,Jquery,Ajax,Smarty,Smarty3,我正在研究MVC结构,其中我使用php作为后端,Smarty模板引擎作为前端(VIEW),jquery用于处理事件。我正在使用Smarty、jquery、PHP和MySQL PDO执行CRUD操作。在这里,我创建了一个tpl文件,在一个单独的行中显示用户数据,每行包含一个删除和更新按钮。我将每个用户的id分配给这些按钮。现在,当用户单击此按钮时,我将检查该按钮是否包含正确的用户id,是否作为在jquery处理程序中保存用户id的警报消息。但我得到的只是单击最后输入的用户的删除按钮/更新按钮时的最

我正在研究MVC结构,其中我使用php作为后端,Smarty模板引擎作为前端(VIEW),jquery用于处理事件。我正在使用Smarty、jquery、PHP和MySQL PDO执行CRUD操作。在这里,我创建了一个tpl文件,在一个单独的行中显示用户数据,每行包含一个删除和更新按钮。我将每个用户的id分配给这些按钮。现在,当用户单击此按钮时,我将检查该按钮是否包含正确的用户id,是否作为在jquery处理程序中保存用户id的警报消息。但我得到的只是单击最后输入的用户的删除按钮/更新按钮时的最后一个用户id。包含删除/更新按钮的表的其他行不显示警报消息(即,当我单击按钮时,不会发生任何事情)。 当我单击任意行上的任意按钮时,请帮助我获取id作为警报消息

>record.tpl

<div class='container'>
    <h1>Users Record</h1>
    
    <table style="width:100%;color:white;">
        <thead>

        <tr bgcolor="blue">
            <th>Id</th>
            <th>Name</th>
            <th>Email</th>
            <th>Date of Birth</th>
            <th>Entry Date</th>
            <td>Edit</td>
            <td>Delete</td>
        </tr>
        </thead>
        
        {foreach from=$data key=myId item=i }
        <tr bgcolor="{cycle values="lightblue,azure"}">
            <td>{$i.id}</td>
            <td>{$i.name}</td>
            <td>{$i.email}</td>
            <td>{$i.dob|date_format:"%e %b, %Y"}</td>
            <td>{$i.created_at|date_format:"%e %b, %Y %H:%M:%S"}</td>
            <td><button type='button' id='edit-data' data-id={$i.id}>&#9998;</button></td>
            <td><button type='button' id='delete-data' data-id={$i.id}>&#10006;</button></td>
        </tr>
        {foreachelse}
        <tr>
            <td>No records</td>
        </tr>
        {/foreach}
    </table>

</div>

<script type="text/javascript">
    $(document).ready(function(){
        $('#edit-data').click(function(){
            var id = $(this).data('id');
            alert(id);
        });
    });

</script>
因此,当我单击第一行删除/更新按钮时,它会将用户id显示为警报消息,即userId=29,但当我转到第二行或表的任何其他行并单击删除/更新按钮时,警报消息不会弹出

请任何人帮我解决这个问题。
提前谢谢!(^ ^)

您正在HTML元素上使用ID,但ID在文档中必须是唯一的。请改为上课。非常感谢您的回复。你是对的,它应该是一个类而不是一个id。我不记得了。
<?php
class guestbook extends controller
{
    public $error = array();
    //var $error = null;

    function __construct()
    {
        parent::__construct();
    }
    function display()
    {
       
        $data = $this->objDBF->getEntries();
        echo "<pre>";
        print_r($data);
        $this->smarty->assign('data', $data);
        $this->smarty->display('record.tpl');
    }
}
Array
(
    [0] => Array
        (
            [id] => 29
            [name] => Tony Stark
            [email] => starktony@yahoo.com
            [dob] => 1987-03-12
            [created_at] => 2020-09-30 18:18:37
        )

    [1] => Array
        (
            [id] => 28
            [name] => Howard Stark
            [email] => starkhoward@gmail.com
            [dob] => 1895-07-12
            [created_at] => 2020-09-30 18:07:05
        )

    [2] => Array
        (
            [id] => 27
            [name] => Ramesh Jain
            [email] => rameshjain@gmail.com
            [dob] => 1996-05-18
            [created_at] => 2020-09-30 18:03:25
        )

    [3] => Array
        (
            [id] => 17
            [name] => Ho Yinsen
            [email] => senho@gmail.com
            [dob] => 1896-05-14
            [created_at] => 2020-09-30 14:26:30
        )
)