Avatar of jonlake
jonlake
Flag for Guernsey asked on

Variables in Javascript URL

Hi, I'm new to Javascript so bear with me please.

I have a series of slides in Adobe Captivate. Each slide has a button on it. When the user clicks the button it should take them to a URL which is partially made up of today's date, e.g:

http://10.10.10.10/abcd/web/day.php?year=2012&month=11&day=01&area=12

I played with setting the variables and using window.open but cannot get it to work. As I said I'm new to Javascipt so any help would be appreciated, and merry Xmas!

Thanks
JavaScript

Avatar of undefined
Last Comment
jonlake

8/22/2022 - Mon
wadehults

The problem you are probably having is that you are attempting to assign values from PHP variables to a JavaScript variable. JavaScript cannot retrieve PHP variables directly from the server. We are talking about both server-side and client-side scripting here. PHP operates on the server and JavaScript operates on the local machine.

Based on the URL example you provided, you are using a _GET method to submit form data to the next page using PHP.

What you will need to do is embed a PHP script within your JavaScript to dynamically generate the values needed for the JavaScript to work. See example below:
<?php
    $year = "2012";
    $month = "11";
    $day = "01";
    $area =  "12";
?>
...
<script language="javascript" type="text/javascript">
    var year = "<?php echo $year  ?>.";
    var month = "<?php echo $month ?>";
    var day = "<?php echo $day ?>;
    var area = "<?php echo $area ?>;
    
    
</script>
...

Open in new window


At this point you can use the variables generated by PHP within your JavaScript construct using the JavaScript variables. Notice the difference between the PHP variable and JavaScript syntax. PHP uses the $ symbol to denote a variable, but JavaScript does not require any prefix.
jonlake

ASKER
I may not have explained myself very well. I need to create the three variables, year, month and day based upon whichever day it happens to be. Something like this:

var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();

Those variables then need to populate into the URL. Once I have the URL created isn't it a smple onclick event?
jonlake

ASKER
I found this code which nicely opens a browser window. My though process is that there my be a way to pass the date variables into the URL:

var simmy = window.open("http://www.google.com", "simWindow","status=0,menuBar=0,location=0,toolBar=0,directories=0,resizable=0,scrollbars=0,height=620,width=980");
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
wadehults

You can develop a JavaScript function that will dynamically insert the variables and variable names into a URL. Example follows:

var url = "http://www.google.com?year="+year+"&month="+month+"&day="+day+"&area="+area;

The final markup would look something like this:
<script type="text/javascript">
var month = "12";
var day = "12";
var year = "2012";
var area = "02";	
var url = "http://www.google.com?year="+year+"&month="+month+"&day="+day+"&area="+area;

document.write("<a href="+url+">this link");
</script>

Open in new window


Does this help you move in the right direction?

Just in case you want to use PHP to generate your variable data, you can use
<?php
$sysdate = date("d,m,Y");
?>

Open in new window

This will return a variable value of DDMMYYYY format and it can be altered to include special characters in the return value.
jonlake

ASKER
This has worked:

var currentTime = new Date();
var month = currentTime.getMonth() + 1;
if(month<10){month='0'+month};
var day = currentTime.getDate("dd");
if(day<10){day='0'+day};

var year = currentTime.getFullYear();
var area = "02";


var simmy = window.open("http:"+"/"+"/"+"10.10.10.10"+"/"+"mrbs"+"/"+"web"+"/"+"day.php"+"%3F"+"year="+year+"%26"+"month="+month+"%26" +"day="+day+"%26"+"area="+area, "simWindow","status=0,menuBar=0,location=0,toolBar=0,directories=0,resizable=0,scrollbars=0,height=620,width=980");
ASKER CERTIFIED SOLUTION
wadehults

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
jonlake

ASKER
Thanks, you steered me in the right direction.
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.