Solved

Adding a variable into a <a href> tag

Posted on 2004-08-18
9
7,892 Views
Last Modified: 2012-06-27
I am trying to modify a template. I want to add a link to an image that is generated by PHP. Currently the code is:  

<dl class="gallery"><dd><a href="http://www.sky2five.com/jpegged/index.php<?=$post_ID?>">

But it defaults to index.php...

Is the syntax the problem?

Thanks,
HT
0
Comment
Question by:htillberg
9 Comments
 
LVL 27

Accepted Solution

by:
Diablo84 earned 250 total points
ID: 11835406
i would avoid using short tags personally in case you are ever in an environment where they are disabled, so try:

<dl class="gallery"><dd><a href="http://www.sky2five.com/jpegged/index.php<?php echo $post_ID; ?>">

and failing that do some checking to make sure the variable is set and its not empty, somewhere in your script:

<?php
if (!isset($post_ID)) {
 echo "post_ID variable is not set";
}
elseif (empty($post_ID)) {
 echo "post_ID variable is set but is an empty";
}
0
 
LVL 5

Expert Comment

by:darksinclair
ID: 11835422
What are you trying to have it default too?

try this:

<a href="http://www.sky2five.com/jpegged/index.php?PostID=<?=$post_ID?>">

that will add a QueryString Variable "PostID" with the value of post_ID.

Not sure if that's what you want.. maybe some more clarification will help,

CHeers.
0
 
LVL 2

Expert Comment

by:nowaydown1
ID: 11836018
Good day:

The problem is indeed in your syntax.  First, the script doesnt know that you are passing any data to it because you haven't defined a variable in the URL.  Without any html code, your url should look something like this:

http://www.sky2five.com/jpegged/index.php?post_id=5

You'll notice there that I added the question mark (which means that a single variable is getting ready to follow), then I added post_id=5.  post_id is just a variable name that I made up.  You can name it anything you like.  Then you see = and then the number 5.  The number 5 in this case, obviously represents your variable $post_ID in your script.  I just gave it a value in this case so you can see how it all fits together.

So in order to fix your script, you have to add a variable name to the url, and then pass the value.  I chose to use a full <?php ?> block here, for clarity, but it should work the same either way.

<?php

echo "<dl class=\"gallery\"><dd><a href=\"http://www.sky2five.com/jpegged/index.php?post_id=\"".$post_ID."\">Click here</a>";

?>

Now in your script (index.php) you will need to retrieve this value like this--

<?php

// index.php--
// Your code should already be here someplace--

$postID=$_GET['post_id'];
if(!isset($postID) || empty($postID)) {
      // Handle the error here--
} else {
     // Script continues--
}

?>

Please let me know if there is any other way that I could clarify this for you.   Hope it helps!  Have a wonderful day!

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 1

Expert Comment

by:PatrickLucas
ID: 11870936
Inorrect: <dl class="gallery"><dd><a href="http://www.sky2five.com/jpegged/index.php<?=$post_ID?>">

Correct: <dl class="gallery"><dd><a href="http://www.sky2five.com/jpegged/index.php?post_id=<? echo $post_ID; ?>">
0
 
LVL 1

Expert Comment

by:njava
ID: 11898726
If your $post_ID = 1, then the URL looks like the one below that I posted. I actually went to your site, you pass a parameter to index.php and assign a number to it. So far, I noticed two parameters - cat and p. Try to modify the URL as I suggested. It worked on my server.

<?php
//just an example

      $post_ID=1;
?>


<dl class="gallery">
  <dd>
      <a href="http://www.sky2five.com/jpegged/index.php?cat=<?php print $post_ID?>">Click here</a>
0
 
LVL 9

Expert Comment

by:gruntar
ID: 12643871
Here is "proper" way to do this. First we check whether variable is set or not, then if true we echo out ?post_ID=value, otherwise we don't do anything.

<dl class="gallery"><dd><a href="http://www.sky2five.com/jpegged/index.php<?php echo (isset($post_ID) ? '?post_ID=' . $post_ID : ''); ?>">

You must be careful with variable names because $post_ID is not the same as $post_id!!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Both Easy and Powerful How easy is PHP? http://lmgtfy.com?q=how+easy+is+php (http://lmgtfy.com?q=how+easy+is+php)  Very easy.  It has been described as "a programming language even my grandmother can use." How powerful is PHP?  http://en.wikiped…
This article will explain how to display the first page of your Microsoft Word documents (e.g. .doc, .docx, etc...) as images in a web page programatically. I have scoured the web on a way to do this unsuccessfully. The goal is to produce something …
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

25 Experts available now in Live!

Get 1:1 Help Now