Ajax - 模态 - 传递变量

Ajax - Modal - Passing Variable

我知道这个问题已经被问了很多,但是在查找了大约 6 个小时之后,我可以说我已经尝试了一切,以我目前的知识(不多)我可以理解,所以我决定过来求高手帮忙:).

这个按钮也在里面korisnik.php

<button href="#myModal1" type="submit" role="button" data-toggle="modal" data-id="<?php print $row['kime']?>" class="open-myModal1"><span class="glyphicon glyphicon-edit"/></button>

这个顶部是一个按钮,单击它会打开一个模式,并且应该向它传递一个值,但它没有。在网上浏览了很多帖子后,我发现最简单的方法是通过 AJAX 将变量发回,所以我使用了这个:

这位于 korisnik.php

的底部
$(document).on("click", ".open-myModal1", function () 
{
    var kime = $(this).data('id');
    $(".modal-body #kime").val( kime );
    $.post('korisnik.php', { 'kime': kime });
});

在 korisnici.php 中使用 $kime = $_POST['kime']; print $kime; 根本不会显示该值,但使用 <input type="text" name="kime" id="kime" value=""/> 会显示该值。一个有效的问题是我仍然没有变量中需要的值,并且不能使用它来根据发送的值进行查询。

所以我的问题是:

如何使用 ajax 进行此操作以便我可以使用 $_POST['kime'] 获取值?

如何将输入字段中的值保存在变量中?

我希望我的请求已经足够清楚了。这些中的任何一个都有效,因为我得到了我想要的东西,这是一个保存在我可以用于其他事情的变量中的值。

感谢您的帮助。

编辑:这是模态代码 korisnik.php

            <div class="modal fade" id="myModal1">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button class="close" data-dismiss="modal">&times;</button>
                        <center><h4 class="modal-title">EDIT KORISNIKA</h4></center>
                    </div><!-- end header -->
                    <hr/>
                    <div class="modal-body">
                        <!--<input type="text" name="kime" id="kime" value=""/>-->
                        <input type='text' name='kime' id='kime' value=''/>
                        <form class="form-horizontal" action='korisnik.php' method="post">
                        <?php
                        $kime = $_POST['kime'];
                        $query = $db->prepare("SELECT * FROM korisnik WHERE kime = :kime");             
                        $query-> execute(array(':kime' => $kime ));
                        $result = $query->fetch();
                        ?>
                            <table class="table table-striped"> 
                                <tr><th style="vertical-align:middle"><center>Korisničko Ime</center></th><td><input readonly class="form-control"  name="username" value="<?php print $result['kime'] ?>"id="username" type="text"></td></tr>
                                <tr><th style="vertical-align:middle"><center>Ime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)"  name="name" id="name" value="<?php print $result['ime'] ?>"  type="text"></td></tr>
                                <tr><th style="vertical-align:middle"><center>Prezime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)" name="surname" id="surname" value="<?php print $result['prezime'] ?>" type="text"></td></tr>
                                <tr><th style="vertical-align:middle"><center>E-Mail</center></th><td><input class="form-control" name="email" id="email" onkeydown="emailk(this)" onkeyup="emailk(this)" onblur="emailk(this)" onclick="emailk(this)" value="<?php print $result['email'] ?>" type="email"></td></tr>
                                <tr><th style="vertical-align:middle"><center>Kredit</center></th><td><input class="form-control" name="kredit" id="kredit" onkeydown="alpha(this)" onkeyup="alpha(this)" onblur="alpha(this)" onclick="alpha(this)" value="<?php print $result['kredit'] ?>" type="number"></td></tr>
                            </table>
                    </div><!-- end body-->
                    <hr/>
                    <div class="modal-footer">
                        <input type="submit" class="btn btn-success pull-left" name="editk" value="Spremi Promjene" />
                        </form>         
                        <button class="btn btn-default pull-right" data-dismiss="modal" type="button">Odustani</button>
                    </div><!-- end footer -->
                </div><!-- end modal-content -->
            </div><!-- end modal-dialog -->
        </div><!-- end modal -->

我认为你语法有误。你应该这样称呼它:

$.ajax({
type: "POST",
url:  "korisnik.php",
data: 
  {
     kime: kime
  }
});

您的点击函数缺少右花括号。

$.post('korisnik.php', { 'kime': kime });

以上 post 也应该有效。

在PHP中检索如下:

$kime = $_POST['kime'];

因此,经过数小时似乎无休止的搜索和阅读,我终于找到了解决方案。我没有将变量发送到模态并在模态内进行查询,而是在模态之前进行了查询并像这样发送了我需要的所有值。

<script type="text/javascript">

    $(document).on("click", ".open-myModal1", function () 
    {

      var kime = $(this).data('id');
      var ime = $(this).data('ime');
      var prezime = $(this).data('prezime');
      var email = $(this).data('email');
      var kredit = $(this).data('kredit');

      $(".modal-body #username").val( kime );
      $(".modal-body #name").val( ime );
      $(".modal-body #surname").val( prezime );
      $(".modal-body #email").val( email );
      $(".modal-body #kredit").val( kredit );
    });
    </script>

我用来打开模态的按钮是这样的。

<button href="#myModal1" role="button" data-toggle="modal" data-id="<?php print $row['kime']?>" data-ime="<?php print $row['ime']?>" data-prezime="<?php print $row['prezime']?>" data-email="<?php print $row['email']?>" data-kredit="<?php print $row['kredit']?>" class="open-myModal1"></button>

模态代码:

    <div class="modal fade" id="myModal1">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button class="close" data-dismiss="modal">&times;</button>
                    <center><h4 class="modal-title">EDIT KORISNIKA</h4></center>
                </div><!-- end header -->
                <hr/>
                <div class="modal-body">
                    <form class="form-horizontal" action='korisnik.php' method="post">
                        <table class="table table-striped"> 
                            <tr><th style="vertical-align:middle"><center>Korisničko Ime</center></th><td><input readonly class="form-control"  name="username" value=""id="username" type="text"></td></tr>
                            <tr><th style="vertical-align:middle"><center>Ime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)"  name="name" id="name" value=""  type="text"></td></tr>
                            <tr><th style="vertical-align:middle"><center>Prezime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)" name="surname" id="surname" value="" type="text"></td></tr>
                            <tr><th style="vertical-align:middle"><center>E-Mail</center></th><td><input class="form-control" name="email" id="email" onkeydown="emailk(this)" onkeyup="emailk(this)" onblur="emailk(this)" onclick="emailk(this)" value="" type="email"></td></tr>
                            <tr><th style="vertical-align:middle"><center>Kredit</center></th><td><input class="form-control" name="kredit" id="kredit" onkeydown="alpha(this)" onkeyup="alpha(this)" onblur="alpha(this)" onclick="alpha(this)" value="" type="number"></td></tr>
                        </table>
                </div><!-- end body-->
                <hr/>
                <div class="modal-footer">
                    <input type="submit" class="btn btn-success pull-left" name="editk" value="Spremi Promjene" />
                    </form>         
                    <button class="btn btn-default pull-right" data-dismiss="modal" type="button">Odustani</button>
                </div><!-- end footer -->
            </div><!-- end modal-content -->
        </div><!-- end modal-dialog -->
    </div><!-- end modal -->

感谢所有试图提供帮助的人!下次见!