I am having an issue with passing a PHP variable ($itemID
in the code below) to a form using a pure CSS modal. The first echo
within the IF statement
returns the correct value. The $itemID
in the form (the second echo
within the IF statement
) gets "stuck" on a single $itemID
.
Specifically, the IF
is first entered when $itemID = 8
. Each subsequent entry into the IF
shows the correct value for $itemID
in the first echo
(outside of the form) but only shows 8
in the second echo
, which is within the form.
I originally used a JQuery modal solution, so I thought my problem was with something in the script, but I'm running into the same issue without using any Javascript.
All of the "Questions that may already have your answer" and "Similar Questions" involve issues with Javascript. (3 of many cited.)
When I comment out the modal DIV
tags, $itemID
is accurate. What I'm presuming (but not understanding) is that when using the modal the DIV
that contains the modal is only loaded the first time the IF statement
is entered. If someone can help me understand why, I can try to figure out a solution.
One thing I've tried is using SESSION
variables (before and after the form) but ran into the same problem, not suprisingly.
PHP:
while ($row_item = $item_result->fetch_assoc()) {
$item_name = $row_item['txtDisplayName'];
$itemID = $row_item['itemID'];
echo '<div class="col-1"><div class="item">' . $item_name . '<br>';
//add a file upload form if needed
if ($row_item['numResponseType']=='1'){
echo $itemID;
echo '<a href="#openModal">Upload</a>';
echo '<div id="openModal" class="modalDialog">';
echo '<div><a href="#close" title="Close" class="close">X</a>';
echo '<h2>Upload</h2>';
echo '<form enctype="multipart/form-data" action="upload.php" method="POST" id="modal-form">';
echo $itemID;
echo '<input type="hidden" name="itemID" value="' . htmlspecialchars($itemID) . '"></input>';
echo '<input type="hidden" name="userIDnum" value="' . htmlspecialchars($userIDnum) . '"></input>';
echo '<input type="hidden" name="groupName" value="' . htmlspecialchars($group_name) . '"></input>';
echo '<input type="hidden" name="itemName" value="' . htmlspecialchars($item_name) . '"></input>';
echo '<input type="file" name="uploadFile"></input><br>';
echo 'Name: <input type="text" name="displayName"></input><br>';
echo '<input type="submit" name="submit" value="Submit"></input></form><br>';
echo '</div></div>';
CSS: (credit)
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover {
background: #00d9ff;
}
Complete Block of Code, Per Request
while ($row_item = $item_result->fetch_assoc()) {
$item_name = $row_item['txtDisplayName'];
$itemID = $row_item['itemID'];
//start the column for this item
echo '<div class="col-1"><div class="item">' . $item_name . '<br>';
//add a file upload form if needed
if ($row_item['numResponseType']=='1'){
echo $itemID;
echo '<a href="#openModal">Upload</a>';
echo '<div id="openModal" class="modalDialog">';
echo '<div><a href="#close" title="Close" class="close">X</a>';
echo '<h2>Upload</h2>';
echo '<form enctype="multipart/form-data" action="upload.php" method="POST" id="modal-form">';
echo $itemID;
echo '<input type="hidden" name="itemID" value="' . htmlspecialchars($itemID) . '"></input>';
echo '<input type="hidden" name="userIDnum" value="' . htmlspecialchars($userIDnum) . '"></input>';
echo '<input type="hidden" name="groupName" value="' . htmlspecialchars($group_name) . '"></input>';
echo '<input type="hidden" name="itemName" value="' . htmlspecialchars($item_name) . '"></input>';
echo '<input type="file" name="uploadFile"></input><br>';
echo 'Name: <input type="text" name="displayName"></input><br>';
echo '<input type="submit" name="submit" value="Submit"></input></form><br>';
echo '</div></div>';
$doc_query = "SELECT docID, resID, itemID, strDocPath, txtDisplayName FROM tblresdocs WHERE itemID='$itemID'";
if(!$doc_result = $db2->query($doc_query)){
die('There was an error running the document query [' . $db2->error . ']');
}
while ($row_doc = $doc_result->fetch_assoc()) {
$doc_id = $row_doc['docID'];
$doc_path = $row_doc['strDocPath'];
$doc_name = $row_doc['txtDisplayName'];
echo '<a href="' . $doc_path . '">' . $doc_name . '</a>';
echo '<form enctype="multipart/form-data" action="deletefile.php" method="POST" style="display: inline;">';
echo '<input type="hidden" name="strDocPath" value="' . htmlspecialchars($doc_path) . '"></input>';
echo '<input type="hidden" name="txtDisplayName" value="' . htmlspecialchars($doc_name) . '"></input>';
echo '<input type="hidden" name="docID" value="' . htmlspecialchars($doc_id) . '"></input>';
echo '<input type="submit" name="delete" value="Delete File" onclick="return confirm(\'Are you sure you want to delete ' . $doc_name . '?\');"></input></form><br>';
} echo '</div></div>';
}
//link
if ($row_item['numResponseType']=='2'){
echo 'link here';
echo '</div></div>';
}
//scholarly activity or QI project
if ($row_item['numResponseType']=='3'){
echo '<form enctype="multipart/form-data" action="addscholar.php" method="POST">';
echo 'Activity Description: <input type="text" value="description"><br>';
echo 'Activity Date: <input type="text" class="datepicker"><br>';
echo '<input type="radio" name="status" value="Complete">Complete</input><br>';
echo '<input type="radio" name="status" value="In Progress">In Progress</input><br><br>';
echo '</form></div></div>';
}
//datepicker
if ($row_item['numResponseType']=='4'){
echo 'Date: <input type="text" class="datepicker"><br><br>';
echo '</div></div>';
}
//self-assessment
if ($row_item['numResponseType']=='5'){
session_start();
$_SESSION['userIDnum'] = $userIDnum;
session_write_close();
echo '<a href="selfassess.php">Self Assessment Form</a>';
echo '</div></div>';
}
//not yet id'd
if ($row_item['numResponseType']==''){
echo 'nada';
echo '</div></div>';
}
}