Bootstrap 5模式未从AJAX接收PHP数据

发布于 2025-02-08 23:18:58 字数 3269 浏览 1 评论 0原文

我在Bootstrap 5中有一个模态,我试图根据我选择的选项从MySQL数据库中填充自定义数据。

因此,我有一个使用PHP和MySQL的数据填充的表。表的最后一列是一个称为“动作”的按钮,当我按下此按钮时,我想打开一个模态)。

如您在下面的代码中所看到的,我的代码与我在此问题中发现的代码完全相同: PASS PHP变量到引导模式

这是我的代码:

在主索引文件中:

...
...
<tbody>
    <?php $categories = Category::find_all();
    foreach ($categories as $category) { ?>

        <tr>
            <th scope="row"><?php echo $category->id; ?></th>
            <td><?php echo $category->cat_name; ?></td>
            <td><?php echo $category->cat_creation_date; ?></td>
            <td><?php echo $category->cat_created_by; ?></td>
            <td><a type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#bsMyModal" data-id="<?php echo $category->id; ?>">Actions</a></td>
        </tr>
    <?php } ?>

</tbody>
...
...

模态代码(在与上表的同一文件中):

<div class="modal fade" id="bsMyModal" role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Edit Data</h4>
                </div>
                <div class="modal-body">
                    <div class="fetched-data"></div> //Here Will show the Data
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-bs-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>

JS代码(在同一文件中的正末端下方)

</body>

<script>
$(document).ready(function(){
    $('#bsMyModal').on('show.bs.modal', function (e) {
        var rowid = $(e.relatedTarget).data('id');
        $.ajax({
            type : 'post',
            url : 'fetch_record.php', //Here you will fetch records 
            data :  'rowid='+ rowid, //Pass $id
            success : function(data){
                $('.fetched-data').html(data);//Show fetched data from database
            }
        });
     });
});

</script>

也是fetch_record.php文件,这是一个基本文件,只是为了使此工作:

<?php
 require_once "backend/init.php"; 

if($_POST['rowid']) {
    $id = $_POST['rowid']; //escape string
    echo $id;
 }
?>

现在问题..

当我按下操作按钮时,什么都没有发生,但我没有得到任何信息(在这种情况下,我应该在 之前将类别ID打印出来。数据“ 模式代码中的文本。

我查看了控制台,我已经看到了此消息:

ajax:681 Uncaught ReferenceError: $ is not defined
    at ajax:681:1
(anonymous) @ ajax:681

如果我单击 @ ajax:681的链接,它将我指向:

在这里输入图像描述

我在做什么错?...

谢谢!

I have a modal in bootstrap 5 that i'm trying to populate with custom data from a mysql database depending on the option i'm selecting.

So I have a table that is populated with some data using PHP and MYSQL. The last column of the table is a button called "Actions" and I want to have a modal opened when I press this button that is filled with the information from the row where I pressed the button (every row contains this button as the last column).

As you can see in the below code, I have the exact same code as I found out in the sollution in this question: Pass PHP variable to bootstrap modal

Here is my code:

In the main index file:

...
...
<tbody>
    <?php $categories = Category::find_all();
    foreach ($categories as $category) { ?>

        <tr>
            <th scope="row"><?php echo $category->id; ?></th>
            <td><?php echo $category->cat_name; ?></td>
            <td><?php echo $category->cat_creation_date; ?></td>
            <td><?php echo $category->cat_created_by; ?></td>
            <td><a type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#bsMyModal" data-id="<?php echo $category->id; ?>">Actions</a></td>
        </tr>
    <?php } ?>

</tbody>
...
...

Modal code (in the same file as the above table):

<div class="modal fade" id="bsMyModal" role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">×</button>
                    <h4 class="modal-title">Edit Data</h4>
                </div>
                <div class="modal-body">
                    <div class="fetched-data"></div> //Here Will show the Data
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-bs-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>

JS code (just below the end of body in the same file)

</body>

<script>
$(document).ready(function(){
    $('#bsMyModal').on('show.bs.modal', function (e) {
        var rowid = $(e.relatedTarget).data('id');
        $.ajax({
            type : 'post',
            url : 'fetch_record.php', //Here you will fetch records 
            data :  'rowid='+ rowid, //Pass $id
            success : function(data){
                $('.fetched-data').html(data);//Show fetched data from database
            }
        });
     });
});

</script>

Also the fetch_record.php file which is a basic file just to have this working:

<?php
 require_once "backend/init.php"; 

if($_POST['rowid']) {
    $id = $_POST['rowid']; //escape string
    echo $id;
 }
?>

Now the problem.. nothing happens

The modal openes when I press the Actions button, but I don't get any information (in this specific case I should be getting the category id printed out before the "//Here Will show the Data" text in the modal code.

I looked at the console and I've seen this message:

ajax:681 Uncaught ReferenceError: $ is not defined
    at ajax:681:1
(anonymous) @ ajax:681

If i click the link at @ ajax:681, it points me to this:

enter image description here

What am I doing wrong?...

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在风中等你 2025-02-15 23:18:58

愚蠢的错误...

我很想搜索控制台错误并遇到此问题:

不是定义吗?

是的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

哑的

Stupid mistake...

I tought about searching for the console error and come upon this:

Uncaught ReferenceError: $ is not defined?

And yes.. I was using the script before referencing the jQuery.. I moved it after the jQuery include and now it works.

Dumb

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文