最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - GET PHP variable value from HTML data-id - Stack Overflow

programmeradmin0浏览0评论

I asked a question earlier today which in a nutshell asks when a user clicks a button on a page -- a pop up modal es up, which should get a PHP variable value.

Since there is no GET or POST request when popup modal btn is clicked which means I can not get the variable value using above two options

tried the following:

`<a id="myid" data-id="<?php echo $userID ?>">link</a>
<script>
  $('#myid').data("id");
</script>`

Now I have the PHP $userID value in a javascript variable. Which leads me to my question what would be the most efficient way to retrieve the $userID variable and insert it into a php variable.

Additional Info

I found this question on SO but it is not really applicable to me.

Example Image of what im trying to achieve

LOOP GENERATED PHP LIST

$teacherClass = new TeacherSearch();
            $teachers = $teacherClass->showAllTeachers();
            if (is_array($teachers)) {
            foreach ($teachers as $teacher) {
                 $src = $teacher['userID'];
<div class="teacher-info">
                        <p class="teacherLabel">
                            NAME:
                            <?php
                            echo $teacher['name'];
                            ?>
                        </p>

                        <p class="teacherLabel">
                            HEADLINE:
                            <?php
                            echo $teacher['headline'];
                            ?>

                        <p class="teacherLabel">
                            LOCATION:
                            <?php
                            echo $teacher['location']
                            ?>
                        </p>
                       <!--BUTTON GOES HERE-->
 <a id="myid" data-id="<?php echo $teacher['userID'] ?>" data-toggle="modal" data-target="#myModal">Hire <?php echo $teacher['name'] ?></a>
                        }//foreach

Example IMG

Modal

<!-- Trigger the modal with a button -->
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 id="modalTitle" class="modal-title"></h4>
            </div>
            <div class="modal-body">
                Need to perform PHP here with $userID variable
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>

    </div>
</div>

I asked a question earlier today which in a nutshell asks when a user clicks a button on a page -- a pop up modal es up, which should get a PHP variable value.

Since there is no GET or POST request when popup modal btn is clicked which means I can not get the variable value using above two options

tried the following:

`<a id="myid" data-id="<?php echo $userID ?>">link</a>
<script>
  $('#myid').data("id");
</script>`

Now I have the PHP $userID value in a javascript variable. Which leads me to my question what would be the most efficient way to retrieve the $userID variable and insert it into a php variable.

Additional Info

I found this question on SO but it is not really applicable to me.

Example Image of what im trying to achieve

LOOP GENERATED PHP LIST

$teacherClass = new TeacherSearch();
            $teachers = $teacherClass->showAllTeachers();
            if (is_array($teachers)) {
            foreach ($teachers as $teacher) {
                 $src = $teacher['userID'];
<div class="teacher-info">
                        <p class="teacherLabel">
                            NAME:
                            <?php
                            echo $teacher['name'];
                            ?>
                        </p>

                        <p class="teacherLabel">
                            HEADLINE:
                            <?php
                            echo $teacher['headline'];
                            ?>

                        <p class="teacherLabel">
                            LOCATION:
                            <?php
                            echo $teacher['location']
                            ?>
                        </p>
                       <!--BUTTON GOES HERE-->
 <a id="myid" data-id="<?php echo $teacher['userID'] ?>" data-toggle="modal" data-target="#myModal">Hire <?php echo $teacher['name'] ?></a>
                        }//foreach

Example IMG

Modal

<!-- Trigger the modal with a button -->
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 id="modalTitle" class="modal-title"></h4>
            </div>
            <div class="modal-body">
                Need to perform PHP here with $userID variable
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>

    </div>
</div>
Share Improve this question edited Jul 25, 2017 at 15:09 Tim C asked Jul 25, 2017 at 15:00 Tim CTim C 5,7149 gold badges42 silver badges98 bronze badges 16
  • 2 use $('#myid').attr("data-id"); – Nana Partykar Commented Jul 25, 2017 at 15:01
  • @NanaPartykar How would I get that value into a PHP variable. Excuse me if Im being stupid here but know very little jscript – Tim C Commented Jul 25, 2017 at 15:04
  • 2 Only by making a new request to the server - so either AJAX, submitting a form, changing the URL via a link click or location.href ... so basically what that question you said was not applicable is about. – C3roe Commented Jul 25, 2017 at 15:04
  • @Timothy: Please share your code. How you opening the model? Share that code too. Please – Nana Partykar Commented Jul 25, 2017 at 15:04
  • @NanaPartykar OK one min – Tim C Commented Jul 25, 2017 at 15:05
 |  Show 11 more ments

1 Answer 1

Reset to default 4

First of all, remove id="myId" from <a></a>. ID must be unique. Use class.

First_Page.php

<?php
$teacherClass = new TeacherSearch();
$teachers = $teacherClass->showAllTeachers();
if (is_array($teachers)) {
  foreach ($teachers as $teacher) {
    $src = $teacher['userID'];
    ?>
    <div class="teacher-info">
      <p class="teacherLabel">
        NAME:<?php echo $teacher['name']; ?>
      </p>
      <p class="teacherLabel">
        HEADLINE:
        <?php echo $teacher['headline'];?>
      </p>
      <p class="teacherLabel">
        LOCATION: <?phpecho $teacher['location'];?>
      </p>
      <!--BUTTON GOES HERE-->
      <a class="openModal" data-id="<?php echo $teacher['userID'] ?>" data-toggle="modal" href="#myModal">
        Hire <?php echo $teacher['name']; ?>
      </a>
    </div>
  <?php }
}?>

Put below code in footer before end of </body> tag.

<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">
    <div class="modal-content">

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

JS

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

Create a new file modal_ajax.php.

[NOTE: Remember, this page name modal_ajax.php is used in script tag also. if you are planning to change the name of this page, change page name there in script tag too. Both are related.]

<div class="modal-header">
  <button type="button" class="close" data-dismiss="modal">&times;</button>
  <h4 id="modalTitle" class="modal-title"></h4>
</div>
<div class="modal-body">
  <?php echo "ID: ".$_GET['id'];?>
</div>
<div class="modal-footer">
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>

Already answered similar question. Please have a look Passing data via Modal Bootstrap and getting php variable?

发布评论

评论列表(0)

  1. 暂无评论