-2

for my issue i'll try to be as brief as possible

what am trying to do is reference a page with a specific id in the HTML anchor link with PHP as the below

<body>
<?php  $linkName = "Second Page"; ?>
<?php $id = 5; ?>

<a href="secondPage.php?id=<?php echo $id;?>"><?php echo $linkName?></a><br>

and it works fine

now what am trying to do is to make the $id part more dynamic by making looping the number from 1 to 10 and also providing 10 links

the code is

</head>
<body>
    <?php  $linkName = "Second Page"; ?>
    <?php $id = 5; ?>

    <?php  
        for ($i=0; $i < 10 ; $i++) { 
            echo "<a href='secondPage.php?id=<?php echo $i;?'>Link1</a>";
        };

    ?>
</body>

however what i did notice as the below images indicates when i hover on the links i noticed that i refer to a strange link

Strange Link

and when i cliched on it it takes me to the following link with an id that i did not want as below

http://localhost/PHP_Course/secondPage.php?id=%3C?php%20echo%201;?

i tried researching the subject and i tried escaping the quotation but it does not seem to resolve the problem

Any help please ??

Funk Forty Niner
  • 74,450
  • 15
  • 68
  • 141
MoRizk
  • 23
  • 6

4 Answers4

0

You're echoing a string in PHP, and using <?php... inside that string.

Solution:

echo "<a href='secondPage.php?id=" . $i . "'>Link1</a>";

id=$i will also work, because you can include variables directly in double-quoted strings.

rybo111
  • 12,240
  • 4
  • 61
  • 70
0

You're echoing the PHP code itself as a string. You don't need to put PHP code inside of PHP code. Just concatenate the values you want to echo:

echo '<a href="secondPage.php?id=' . $i . '">Link1</a>';
David
  • 208,112
  • 36
  • 198
  • 279
0

because you already started an echo statement so you don't need to add another PHP starting and ending tags. just check my code below and try it.

<?php  
           for ($i=0; $i < 10 ; $i++) { 
             echo "<a href='secondPage.php?id=".$i."'>Link1</a>";
    } ;

?>
imran qasim
  • 1,050
  • 13
  • 18
0

<?php and ?> tags indicate to the PHP preprocessor that anything inside them is code and needs to be parsed, everything outside is just text PHP doesn't touch.

Inside the <?php tag, "<?php" string has no special meaning, so is printed. You do not need to open and close tags all the time, try this:

</head>
<body>
    <?php
        $linkName = "Second Page";
        $id = 5;

        for ($i = 0; $i < 10 ; $i++) { 
            echo "<a href='secondPage.php?id=$i;'>Link1</a>";
        };
    ?>
</body>
ya23
  • 14,226
  • 9
  • 46
  • 43