简体   繁体   English

通过在锚标记中使用 data-id 属性,使用 jquery 将值传递给模态弹出窗口

[英]pass value to modal popup using jquery by using data-id attribute in anchor tag

<div class="login-group">
<div class="form-group">
    <table cellspacing="0" cellpadding="0" border="0" class="container">
        <?php
        $selectquery = "Select * from tblservices where category_id = 1";
        $qry=mysqli_query($con,$selectquery);
        if($qry)
        {
            $rowcount=mysqli_num_rows($qry);
            if($rowcount>0)
            {
                $countI = 1;
                while($obj=mysqli_fetch_array($qry))
                {
                    if($countI==0)
                    {
                        ?>
                        <tr>
                            <td class="bgimg">
                                <a href="#" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
                                    <?php echo $obj["service_name"]; ?>
                                </a>
                            </td>
                            <td>
                                <a href="#" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
                                    <img src="<?php echo '../assets/img/'.$obj['service_image']; ?>" alt="" >
                                </a>
                            </td>
                        </tr>
                        <?php
                        $countI = $countI + 1;
                    }
                    else if($countI %2 ==0)
                    {
                        ?>
                        <!--<a href="#" data-id="<?php echo $obj["value1"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">show value</a>-->
                        <tr>
                            <td>
                                <a href="#" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
                                    <img src="<?php echo '../assets/img/'.$obj['service_image']; ?>" alt="" >
                                </a>
                            </td>
                            <td style="font-size:20px; text-align: center;" class="bgimg">
                                <a href="#" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
                                    <?php echo $obj["service_name"]; ?>
                                </a>
                            </td>
                        </tr>
                        <?php
                        $countI = $countI + 1;
                    }
                    else
                    {
                        ?>
                        <tr>
                            <td style="font-size:20px; text-align: center;" class="bgimg">
                                <a href="#" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
                                    <?php echo $obj["service_name"]; ?>
                                </a>
                            </td>
                            <td>
                                <a href="#" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
                                    <img src="<?php echo '../assets/img/'.$obj['service_image']; ?>" alt="" >
                                </a>
                            </td>
                        </tr>
                        <?php
                        $countI = $countI + 1;
                    }
                }
            }
        }
        ?>
    </table>
</div>

the above code displays the values from the database, with the data-id as service id in the anchor tag上面的代码显示了数据库中的值,在锚标记中使用数据 ID 作为服务 ID

and this data-id should be displayed in the modal popup, find below并且此数据 ID 应显示在模态弹出窗口中,请在下面找到

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="padding-top: 150px;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Choose your slot</h4>
            </div>
            <div class="modal-body">
                <input type="text" name="service_id" class="hiddenid"/>
                <div class="form-group">
                    <table align="center">
                        <tr>
                            <td colspan="2"> <p class="white_text">Preferred slot 1</p></td>
                        </tr>
                        <tr>
                            <td style="padding-right: 10px;"><input type="date" id="theDate" name="slot1_dt" required> </td>
                            <td><input type="time" id="timePicker1" name="slot1_tm" required> </td>
                        </tr>
                        <tr>
                            <td colspan="2" style="padding-top: 15px;"><p class="white_text">Preferred slot 2</p></td>
                        </tr>
                        <tr>
                            <td style="padding-right: 10px;"><input type="date" id="theTomorrow" name="slot2_dt" required> </td>
                            <td><input type="time" id="timePicker2" name="slot2_tm" required> </td>
                        </tr>
                        <tr>
                            <td colspan="2" style="padding-top: 15px;">
                                <center><button type="submit" name="book" class="btn btn-default" value="book" style="font-size: 14px !important;">Book</button>
                                &nbsp;
                                <button type="button" class="btn btn-default" style="font-size: 14px !important;" data-dismiss="modal">Close</button></center>
                            </td>
                        </tr>
                    </table>

                    <?php
                    if(isset($_REQUEST["book"]))
                    {
                        if($_REQUEST["book"])
                        {
                            $service_id=$_REQUEST["service_id"];
                            $customer_id=$_REQUEST["cust_id"];
                            $slot1_dt=$_REQUEST["slot1_dt"];
                            $slot2_dt=$_REQUEST["slot2_dt"];
                            $slot1_tm=$_REQUEST["slot1_tm"];
                            $slot2_tm=$_REQUEST["slot2_tm"];
                            $slot1=$slot1_dt." ".$slot1_tm;
                            $slot1 = date("Y-m-d H:i:s",strtotime($slot1));
                            $slot2=$slot2_dt." ".$slot2_tm;
                            $slot2 = date("Y-m-d H:i:s",strtotime($slot2));
                            $insertqry="INSERT INTO `tblappointments`(`customer_id`, `service_id`, `preferred_slot1_date`, `preferred_slot2_date`)
                            VALUES ('$customer_id','$service_id','$slot1','$slot2')";
                            $res=mysqli_query($con, $insertqry) or die(mysqli_error($con));

                            if($res)
                            {
                                echo("successful.....");
                            }
                        }
                    }
                    ?>
            </div>
        </div>
        <div class="modal-footer"></div>
    </div>
</div>
</div>

and the jquery used for value passing is用于值传递的 jquery 是

<?
$(".modalLink").click(function () {
var passedID = $(this).data('id');
$('#id').val(passedID);

//modifies input in modal
$(".modal-body .hiddenid").val(passedID);});
?>

these codes are under single php file and js is stored as separate file这些代码在单个 php 文件下,js 存储为单独的文件

and on ouput i can't able to get the data-id value to be passed并且在输出上我无法获得要传递的数据 ID 值

the text field still remains null.文本字段仍然为空。

anyone please help me.任何人请帮助我。

Firstly, Remove href="#" with href="#myModal".首先,使用href="#myModal".删除href="#" href="#myModal".

<a href="#" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
    <img src="<?php echo '../assets/img/'.$obj['service_image']; ?>" alt="" >
</a>

Secondly, this is not the way to call data-id.其次,这不是调用data-id. Remove var passedID = $(this).data('id');删除var passedID = $(this).data('id'); with var dataId=$(this).attr('data-id');使用var dataId=$(this).attr('data-id'); Like below.像下面。

<?
$(".modalLink").click(function () {
var passedID=$(this).attr('data-id');
.
.
?>

If it works, well and good.如果它有效,那么好。 If not, follow my code step by step, it will work.如果没有,请按照我的代码一步一步来,它会起作用。

So, i will suggest you to make one page for modal only ( somepage.php ).所以,我建议你只为模态制作一页( somepage.php )。 Where you pass ' dataId ' in proper manner using ajax .使用ajax以正确方式传递 ' dataId ' 的地方。

1) Write your <a></a> tag as below. 1) 如下写你的<a></a>标签。 href="#myModal" is mandatory. href="#myModal"是强制性的。

<a class="modalLink" href="#myModal" data-toggle="modal" data-id="<?php echo $obj["service_id"]; ?>">
    <?php echo $obj["service_name"]; ?>
</a>

2) In footer, Place this code. 2)在页脚中,放置此代码。 (like footer.php ) (如footer.php

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="padding-top: 150px;">
    <div class="modal-dialog">
        <div class="modal-content">

        </div>
    </div>
</div>

3) Call your 'somepage.php' (Separate page.Where modal-body is present) through ajax. 3)通过ajax调用你的'somepage.php'(单独的页面。存在模态体的地方)。 Place this <script></script> in your JS file.将此<script></script>放在您的JS文件中。

<script>
$('.modalLink').click(function(){
    var dataId=$(this).attr('data-id');
    $.ajax({url:"somepage.php?dataId="+dataId,cache:false,success:function(result){
        $(".modal-content").html(result);
    }});
});
</script>

4) Create somepage.php (If you want to change this page name. Change in <script></script> too. Both are related.) 4)创建somepage.php (如果你想改变这个页面名称。在<script></script>也改变。两者是相关的。)

somepage.php某个页面.php

<?

// Access $dataId like this way and use any where you want in this modal. 

$dataId=$_GET['dataId'];
?>


<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal">&times;</button>
    <h4 class="modal-title" id="myModalLabel">Choose your slot</h4>
</div>
<div class="modal-body">
    <input type="text" name="service_id" class="hiddenid" value="<?echo $dataId;?>"/>
    <div class="form-group">
        <table align="center">
            <tr>
                <td colspan="2"> <p class="white_text">Preferred slot 1</p></td>
            </tr>
            <tr>
                <td style="padding-right: 10px;"><input type="date" id="theDate" name="slot1_dt" required> </td>
                <td><input type="time" id="timePicker1" name="slot1_tm" required> </td>
            </tr>
            <tr>
                <td colspan="2" style="padding-top: 15px;"><p class="white_text">Preferred slot 2</p></td>
            </tr>
            <tr>
                <td style="padding-right: 10px;"><input type="date" id="theTomorrow" name="slot2_dt" required> </td>
                <td><input type="time" id="timePicker2" name="slot2_tm" required> </td>
            </tr>
            <tr>
                <td colspan="2" style="padding-top: 15px;">
                    <center><button type="submit" name="book" class="btn btn-default" value="book" style="font-size: 14px !important;">Book</button>
                    &nbsp;
                    <button type="button" class="btn btn-default" style="font-size: 14px !important;" data-dismiss="modal">Close</button></center>
                </td>
            </tr>
        </table>

        <?php
        if(isset($_REQUEST["book"]))
        {
            if($_REQUEST["book"])
            {
                $service_id=$_REQUEST["service_id"];
                $customer_id=$_REQUEST["cust_id"];
                $slot1_dt=$_REQUEST["slot1_dt"];
                $slot2_dt=$_REQUEST["slot2_dt"];
                $slot1_tm=$_REQUEST["slot1_tm"];
                $slot2_tm=$_REQUEST["slot2_tm"];
                $slot1=$slot1_dt." ".$slot1_tm;
                $slot1 = date("Y-m-d H:i:s",strtotime($slot1));
                $slot2=$slot2_dt." ".$slot2_tm;
                $slot2 = date("Y-m-d H:i:s",strtotime($slot2));
                $insertqry="INSERT INTO `tblappointments`(`customer_id`, `service_id`, `preferred_slot1_date`, `preferred_slot2_date`)
                VALUES ('$customer_id','$service_id','$slot1','$slot2')";
                $res=mysqli_query($con, $insertqry) or die(mysqli_error($con));

                if($res)
                {
                    echo("successful.....");
                }
            }
        }
        ?>
    </div>
</div>
<div class="modal-footer">

</div>

Enjoy Coding.享受编码。

UPDATED CODE (On @Sridhar's Demand)更新代码(根据@Sridhar 的需求)

1) Change href="#" to href="#myModal" everywhere it's present in your code for modal pop up. 1)将href="#"更改为href="#myModal"代码中出现的任何位置,以便弹出模式。

<td class="bgimg">
  <a href="#myModal" data-id="<?php echo $obj["service_id"]; ?>" data-toggle="modal" data-target="#myModal" class="modalLink">
      <?php echo $obj["service_name"]; ?>
  </a>
</td>

2) Use this code in JS . 2) 在JS 中使用此代码。

JS JS

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$('.modalLink').click(function(){
  var ID=$(this).attr('data-id');
  $.ajax({url:"NewPage.php?ID="+ID,cache:false,success:function(result){
      $(".modal-content").html(result);
  }});
});
</script>

3) Place this code in footer. 3) 将此代码放在页脚中。

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="padding-top: 150px;">
  <div class="modal-dialog">
    <div class="modal-content">

        </div>
    </div>
</div>

4) Create NewPage.php (If you want to change page name of this page. Please change in Point-2 <script></script> tag too. Both are related) 4) 创建NewPage.php (如果你想改变这个页面的页面名称。请在Point-2 <script></script>标签中也改变。两者是相关的)

NewPage.php新页面.php

Access ID through _GET and do whatever you want with this ID通过_GET访问ID并使用此ID为所欲为

<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal">&times;</button>
    <h4 class="modal-title" id="myModalLabel">Choose your slot</h4>
</div>
<div class="modal-body">
  <?php echo $_GET['ID'];?>
</div>
<div class="modal-footer"></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用jQuery的数据ID属性? - data-id attribute using jquery? jQuery获取锚标签的数据ID - jquery get the data-id of anchor tag 如何将锚标签的data-id值传递给Code-Igniter控制器功能并以数据模式显示结果? - How to pass data-id value of anchor tag to Code-Igniter controller function and show result in data-modal? 使用带有数据ID标记的Javascript添加属性COLSPAN - Adding an Attribute COLSPAN using Javascript Using an data-id Tag 如何通过锚标记将 id 值传递给模式弹出窗口 - How to pass an id value through an anchor tag to a modal popup 如何使用 JQuery 正确地动态传递数据 ID - How to properly pass data-id dynamically using JQuery 在选择器中使用带有data-id属性的变量 - Using a variable in selector with the data-id attribute 访问单击的锚标记的数据 ID,并使用 JavaScript 重定向到 href 路径 - Access data-id of clicked anchor tag and also redirect to href path using JavaScript 在 data-id 中使用逗号触发模态,在逗号列表中使用具有单个值的锚点 - trigger modals with commas in data-id, using an anchor with single value in commad list 如何使用 jQuery 获取所有数据 id 输入 class 值,其中数据 id 与当前关注的字段数据 id 相同? - How to get all data-id input class value where the data-id is same as currently focused field data-id using jQuery?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM