需要PHP echo才能在缓冲区上生成文本超链接

I have a php form on my site. The form ultimately produces an article submitted by the user.

One of the data fields in the form, is a drop down menu so the user can select which publication they represent.

Currently, the form works if I am only trying to display the name of their publication.

However... I would also like that name to be a clickable link to their respective publication.

In an attempt to achieve this, I set my form up like this:

    Form: <select name="publication" id="publication">
          <option value="http://www.espn.com">ESPN</option>
          <option value="http://www.cnn.com">CNN</option>
          <option value="http://www.abcnews.com">ABC</option>
          <option value="http://www.cbsnews.com">CBS</option>
          <option value="http://www.foxnews.com">FOX</option>
          </select>

And the echo is set up like this:

    Echo:

   <?php $publication  = htmlspecialchars($_POST['publication']); echo $publication; ?>

Unfortunately, the result produces the full URL instead of the Text Link I am trying to achieve.

Not sure how I am supposed to code the form or the echo to achieve the desired clickable text link.

The value of $_POST['publication'] is going to be the chosen <option>'s value, not the display name.

If you want to display the link along with the name, consider encoding the list of publications into a static array, then outputting that:

$publications = [
    "media1" => "link",
    "media2" => "link"
]

if (array_key_exists($_POST["publication"], $publications)) {
    echo '<a href="' . $publications[$_POST["publication"]] . '">' . htmlspecialchars($_POST["publication"]) . '</a>';
}

It is taking the value option, not the innerHTML. One solution is to make the value the following:

<a href='http://example.org'>Example</a>

Note: You may need to escape characters for this to work.