在WordPress堆栈交换网站上发布这个,因为我正在使用WordPress网站,但我认为这是一个更好的问题。
我有两个输入,我想将其用作同一表单的一部分。它们都能完美地向网址栏提供$ _GET,但只有当它们独自工作时才会这样。当两者都在页面上时,为任何一个输入一个值并按回车将不执行任何操作。
<form action="<?php the_permalink() ?>" method="get">
<?php
/* receiveGET() is just a function I wrote that grabs the $_GET results */
$inst = receiveGET(instrument_search);
$search_field = receiveGET(user_search);
/* all the form processing stuff goes here, and it's all working properly */
?>
<!-- If this input is deleted, the other input works perfectly. -->
<table id="musician-field" class="form-table">
<tr>
<td>
<input title="Search User" name="user_search" maxlength="21" placeholder="Search Name" value="<?php echo htmlspecialchars($_GET[user_search]); ?>" ></input>
</td>
</tr>
</table>
<!-- If this input is deleted, the other input works perfectly. -->
<table id="instrument-field" class="form-table">
<tr>
<td>
<input title="Search Instrument" name="instrument_search" maxlength="21" placeholder="Search Instrument" value="<?php echo htmlspecialchars($_GET[instrument_search]); ?>" ></input>
</td>
</tr>
</table>
/* The form close tab is way below a lot of PHP and HTML,
but I have the same bug happen when I move it up to be
directly enclosing the inputs */
</form>
我知道所有的变量都是正确的,所以我很肯定这是因为我对表格如何运作的理解不足,但我无法弄清楚问题是什么。我在网上看到的所有内容似乎都没有限制进入表单的输入数量。有人想开导我,知道如何解决这个问题吗?
谢谢!
答案 0 :(得分:0)
好几件事。
user_search
和instrument_search
收到了未定义的索引错误。所以我尝试在他们之前做一个isset函数,它对我有用。$_GET['user_search']
和$_GET['instrument_search']
。在您的值中尝试以下代码:
<?php echo isset($_GET['user_search']) ? htmlspecialchars($_GET['user_search']) : ' '; ?>
和
<?php echo isset($_GET['instrument_search']) ? htmlspecialchars($_GET['instrument_search']) : ' '; ?>
您在输入中使用值标记的目的是什么?您可以在php中使用$ _GET并在不使用值标记的情况下获取值。使用value=
将覆盖占位符,输入框在加载页面时不会显示任何文字!