[PHP,HTML]链接到页面的按钮,php变量不起作用

I've been trying to use a button as a link to add some interactivity to my site, however for some reason it doesn't work.

I've been using this code for a search bar:

<span>
<input type="text" id="search" placeholder="Zoek naar een boek of auteur" name="search" method="get" autocomplete="off" style="width:25%;" value="<?php echo htmlspecialchars($search); ?>"></input>
        <button type='submit' style="vertical-align:middle" id='filterButton' onclick="<?php echo htmlspecialchars("'?search=$_GET[search]'");?>">
    <span>Zoek</span>
</button>
</span>

This works perfectly fine, when I click the button, I go to the search page with the variable. In the search results, I use the same method to make a "more info" button, redirecting the user to a page with, well, more information about a book. This is the code in this part

<span>
    <button type='submit' style="vertical-align:middle" id='infoButton' onclick="<?php echo htmlspecialchars("book.phph?id=$resultsid");?>">
    <span>Meer info</span>
</button>
</span>

But this doesn't work, the button does respond when I click it (I get the animation), but I don't get redirected to the page. I've tried a different method:

<span>
<form action="<?php echo htmlspecialchars('book.php?id=$resultsid');?>">
    <button type='submit' style="vertical-align:middle" id='infoButton' />
        <span>Meer info</span>
    </button>
</form>
</span>

This redirects me to "book.php?", but that's it. It ignored the id=$resultsid behinf the question mark. I can't get it to work, can somebody help please?

Thanks ~DagelijksGamer

Your last example may work, removing the parameter from the form action and adding an hidden input field:

<form action="<?php echo htmlspecialchars("book.php");?>" method="GET">
    <input name="id" type="hidden" value="<?php echo $resultsid; ?>" />
    <button type='submit' style="vertical-align:middle" id='infoButton' />
            <span>Meer info</span>
    </button>
</form>

These answers explain why the part after "?" gets ignored in your last example:

https://stackoverflow.com/a/1116026/3052648

https://stackoverflow.com/a/9882750/3052648

Note that you didn't specify a method in your form, and it defaults to GET.

You shouldn't need to use htmlspecialchars to output a URL into HTML.

The onclick event of a button does not take the user to the new page, it executes Javascript inside it. You either need to encapsulate your button inside an <a> tag and set the link there, or write some javascript to redirect the browser inside your onclick event.

Your search bar example looks like it is part of a <form> element which could be the only reason that it works, but that button also has the same problem:

You're trying to execute a URL as pure Javascript

Here are some other alternatives to make links that look like buttons: Stack Overflow