I am passing PHP variables in URL, so my page link looks like this www.example.com?redirect=neworders
Based on $_GET['redirect'] value I create the content of my page in my example the input
Then in the <script> part I want to call a function with parameters based on the PHP value.
My current code is working for now But I believe that's not the correct way how it should be done although I checked multiple threads and usually answers were one of the option I mentioned.
Any suggestions please if I am doing it right ? I added comments in my code to be understand my case. Thank you very much.
<?php
//my url can be either www.example.com?redirect=neworders or www.example.com?redirect=deliveredorders
switch($_GET['redirect']) {
case 'neworders':
$page = 'Backlog';
break;
case 'deliveredorders':
$page = 'Shipment';
break;
}
?>
<body>
//based on $page value, I create the input value with a specific id
<?php
if ( $page == 'neworders') {
echo '<input type="text" id="BacklogName" placeholder="enter order number">'; }
elseif ( $page == 'deliveredorders') {
echo '<input type="text id="ShipmentName" placeholder="enter order number then serial number">';
}
?>
<button type="button" id="submitButton">Submit</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</body>
<script>
$(document).ready(function() {
//I have some functions declared here to use based on $page value
function submitEvent(element, input) {
element.click(function() {
alert(input.val());
});
}
//based on $page value, intialize the function with exact selectors
//first Option came to my mind : check the $page value and echo function intialization as string
<?php
if ( $page == 'neworders') {
echo 'submitEvent($("#submitButton"), $("#BacklogName"));'; }
elseif ( $page == 'deliveredorders') {
echo 'submitEvent($("#submitButton"), $("#ShipmentName"));'; }
?>
//second option came to my mind : use javascript 'if else' and only echo the $page value
if ("<?php echo $page; ?>" == "neworders") {
submitEvent($("#submitButton"), $("#BacklogName")); }
else if ("<?php echo $page; ?>" == "deliveredorders") {
submitEvent($("#submitButton"), $("#ShipmentName"));
}
});
</script>
scripttag should be inbodyand not outredirect=newordersis a query parameter and not a php variable. A query parameter is part of the url and you can access it with php with$_GETor with javascript/jquery. See the duplicated answer for how to do it in javascript. Don't inject php in javascript as other are suggesting