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">×</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">×</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
1 Answer
Reset to default 4First 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">×</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?