在php/HTML中打开链接时,问号后面的单词丢失

在php/HTML中打开链接时,问号后面的单词丢失,php,html,button,hyperlink,Php,Html,Button,Hyperlink,我知道问一个在过去几乎已经被回答过的问题是有点错误的,但即使我尝试使用,它也不起作用 基本上,我有一个带有搜索链接的php表,该搜索链接是从表中的字符串在HTML按钮中创建的 假设这个字符串在名为Discogs的网站上创建了一个搜索,我通过一个创建的链接搜索的信息是单词“披头士” 您注意到?q= 每次我通过php代码点击链接时,打开的链接会将我带到www.discogs.com/search/?没有其他弦乐(在这种情况下,是披头士这个词) 我试图对?进行编码,使其成为%3F 下面是我的代码 $d

我知道问一个在过去几乎已经被回答过的问题是有点错误的,但即使我尝试使用,它也不起作用

基本上,我有一个带有搜索链接的php表,该搜索链接是从表中的字符串在HTML按钮中创建的

假设这个字符串在名为Discogs的网站上创建了一个搜索,我通过一个创建的链接搜索的信息是单词“披头士”

您注意到
?q=

每次我通过php代码点击链接时,打开的链接会将我带到www.discogs.com/search/?没有其他弦乐(在这种情况下,是披头士这个词)

我试图对
进行编码,使其成为
%3F

下面是我的代码

$discogslink = 'http://www.discogs.com/search/'.rawurlencode('?').'q='.'Beatles' ;
  $form = "<form action='$discogslink' >";
  $form .= "<input type='submit' value='Discogs'>";
  $form .= "</form>";      
 echo '<td class="'.$lps->type.'">'.$form.'&nbsp;</td>'; 
$discogslink='1!'http://www.discogs.com/search/“.rawurlencode(“?”).“q=”.“披头士”;
$form=“”;
$form.=”;
$form.=”;
回显“.$form.”;
我想打开的链接是

打开的链接是: ? (在“?”…”后面没有任何内容)

你知道为什么会这样吗


附加问题:如何使按钮在新选项卡中而不是在同一选项卡中打开?

原因是HTML表单的默认行为。它们以GET请求的形式发送数据,就像链接一样。因此,在您的情况下,表单的内容(为空)会覆盖您的q参数,因为表单内容会胜过操作链接中指定的参数

解决方案是添加一个隐藏字段:

<input type="hidden" name="q" value="Beatles"></input> 

关于新窗口:

<form target="_blank" ...

现在您可以看到隐藏字段:)谢谢您的帮助。我很抱歉我缺乏编程技能哈哈。我应该把它放在表格前面吗?顺便说一下,我创建的链接没有“披头士”作为值,而是由多个字符串创建的(代码实际上如下所示:
$createdlink=)http://www.discogs.com/search/“.rawurlencode(“?”).“q=”.rawurlencode($lps->说明)。“%20”。rawurlencode($lps->catno)。”&type=release&layout=med'
;)这就是我应该放在“value=”字符串中的内容吗?不,你应该为每个值使用一个隐藏的输入字段,即:
我希望我知道该放在哪里。我应该从代码中完全删除$createdlink吗?我所做的一切都是让我的.php页面停止响应。至于你的“奖金问题”:
form
有一个
target
属性但是,由于您不需要在这里提交实际的表单数据,您最好首先使用普通链接——如果您希望它看起来像一个按钮,那么格式使用CSS。
<form target="_blank" ...