Ajax - 模态 - 传递变量

时间:2015-02-07 18:35:27

标签: php jquery ajax bootstrap-modal

我知道这已被问了很多但是在查了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 -->

3 个答案:

答案 0 :(得分:1)

所以最后几小时看起来无穷无尽的搜索和阅读,我找到了解决方案。我没有在模态中发送变量到模态并进行查询,而是在模态之前进行查询,并发送了我需要的所有值。

<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 -->

感谢所有试图提供帮助的人!直到下一次!

答案 1 :(得分:0)

我认为你在语法上犯了错误。你应该这样称呼它:

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

答案 2 :(得分:0)

您在点击功能上缺少结束花括号。

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

以上帖子也应该有用。

在PHP中检索它,如下所示:

$kime = $_POST['kime'];