如何解决设置输入值以获取变量
我有两个网页。
index.php
其中包含一个表格
<form id="searchForm" class="" action="search.php" method="get" style="position:absolute; top:150pt; left:10pt; font-size:17pt;">
<label for="">Postcode</label>
<input type="text" id="postcode" name="postcode" value="" placeholder="AB12 3CD" oninput="checkPostcode()">
<!-- function isValidPostcode(p) {
var postcodeRegEx = /[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i;
return postcodeRegEx.test(p);
} -->
<br>
<label for="">Type of Course</label>
<select class="" name="coursetype">
<option value="" disabled selected></option>
<option value="online">Online</option>
<option value="">In Person</option>
</select>
<br>
<input type="submit" value="Search">
</form>
表单在search.php中提交了操作
search.php
这与上一页中输入的数据显示相同的形式
<?PHP $postcode = $_GET['postcode'];?>
<form class="" action="search.php" method="get">
Postcode <input type="text" name="postcode" value="
<?php
$postcode = str_replace('%20',' ',$postcode);
$postcode = str_replace('-',$postcode);
$postcode = str_replace('%09','',$postcode); // This line was added to try to remove
the tabs
echo $postcode;
?>
">
Tags
<select id="tagsInput" class="js-example-basic-hide-search-multi" name="specialities[]"
multiple="multiple" onkeyup="filterTags()">
<option value="AL">Lorem</option>
<option value="WY">ipsum</option>
</select>
<script>
$(document).ready(function() {
$('.js-example-basic-hide-search-multi').select2({language: "en"});
})
</script>
<script>
function filterTags() {
var input,filter,table,tr,td,i,txtValue;
input = document.getElementById("tagsInput");
filter = input.value.toUpperCase();
table = document.getElementById("searchTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[2];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
</script>
<input type="submit" value="Submit">
</form>
但是,当输入显示在search.php中时,输入的两侧都有两个选项卡。
我该如何摆脱呢?
解决方法
很有趣,因为使用PHP,您会收到该错误。
Postcode <input type="text" name="postcode" value="
<?php
$postcode = str_replace('%20',' ',$postcode);
$postcode = str_replace('-',$postcode);
$postcode = str_replace('%09','',$postcode); // This line was added to try to remove
the tabs
echo $postcode;
?>
">
请注意您的value="
,然后在下一行开始<?php
。两者之间的空白是造成您空白的原因。只需将这两个粉碎在一起,它就会消失:
Postcode <input type="text" name="postcode" value="<?php
$postcode = str_replace('%20',$postcode); // This line was added to try to remove
the tabs
echo $postcode;
?>">
呈现页面时,HTML会自动将多个空格折叠成一个空格,但会保留一个空格,这就是您所看到的。
我看不到一个以多余的空格结尾的地方,但是扔在trim()
上不会感到受伤:
Postcode <input type="text" name="postcode" value="
<?php
$postcode = str_replace('%20',$postcode);
$postcode = trim($postcode);
echo $postcode;
?>
">
trim()
将修剪字符串开头和结尾的所有空格(以防用户意外添加了一些内容)。
这将在两侧插入\ n
Postcode <input type="text" name="postcode" value="
<?php ...?>
">
这不会:
Postcode <input type="text" name="postcode" value="<?php
...
?>">
为了确保您可以执行此操作
Postcode <input type="text" name="postcode"
value="<?=trim(str_replace('-',$postcode))?>">
,
问题是代码的这一部分中的换行符。
Postcode <input type="text" name="postcode" value="
<?php
$postcode = str_replace('%20',$postcode);
$postcode = str_replace('-',$postcode);
$postcode = str_replace('%09',$postcode);
echo $postcode;
?>
">
要解决此问题,请在str_replace
之前放置HTML
行,以删除所有换行符
$postcode = str_replace('%20',$postcode);
Postcode <input type="text" name="postcode" value="<?php echo $postcode ?>">
我还建议您将所有POST
数据验证放在HTML
之前,这样做可以使您的代码看起来更加整洁。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。