通过超链接传递到其他页面的数据正在被切断
Data passed to other pages via hyperlink is being cut off
我有一个包含 2 个<select>
的表单,第一个选择在页面加载时自动填充自身,而第二个选择根据第一个选择中选择的选项填充自身。
为此,每当选择的状态发生变化时,第一个中的选定值将被传递到一个单独的页面,在该页面中,该值用于填充第二个<select>
问题
通过 url 传递的选定值(在本例中为食品和饮料)被切断了一半,导致不完整的字符串被发送到第二个处理页面,从而导致它无法运行。
为确定问题而采取的步骤 我已经回显了通过 url 传递的值,只得到了"食物",其余的字符串被切断了。我尝试将字符串值替换为食品和饮料,整个事情运行良好,导致我得出结论,由于 & 符号导致计算机将字符串的一部分视为通过 URL 传递的另一个值,字符串被切断了 & 符号。但是,由于我没有将其分配给变量,因此它没有被传递。
问题
有什么方法可以让我在不被切断的情况下传递值?
代码摘录:
处理页面
<?PHP
include("cxn.inc");
$query=$cxn->prepare("SELECT * FROM `BusinessSubCategory` WHERE `BusinessCategory`=:businesscategory");
$query->bindValue(":businesscategory",$_GET['category']);
$query->execute();
$count=$query->rowCount();
if($count>0)
{
echo"<option id='subcategory' value=''>Please select a SubCategory</option>";
while($result=$query->fetch(PDO::FETCH_ASSOC))
{
$subcategory=$result['BusinessSubCategory'];
echo"<option id=$subcategory value=$subcategory >$subcategory</option>";
}
}
else
{
echo"<option id='subcategory' value=''>Error,fetch query not run. </option>";
}
?>
JQuery Code
$(document).ready(function(){
$('#BusinessCreateCategory').load('getbusinesscategory.php');
$('#BusinessCreateCategory').change(function(){
var category=$('#BusinessCreateCategory').val();
window.location.href='getbusinesssubcategory.php?category='+category;
});
编辑:尝试编码URIComponent,但数据没有被编码,因为我可以从处理apge的URL中看到它在与号处被切断。但是,如果我手动输入 url 作为字符串,然后使用 encodeURIComponent 对其进行编码,它的效果非常好。有没有人能阐明为什么我无法编码 $('#BusinessCreateCategory').val();谢谢!
例如这行得通
var category="Food & Beverages";
var encoded =encodeURIComponent(category);
window.location.href='getbusinesssubcategory.php?category='+encoded;
例如,这不会
var category=$('#BusinessCreateCategory').val();
var encoded= encodeURIComponent(category);
window.location.href='getbusinesssubcategory.php?category='+encoded;
如果有帮助,我尝试通过 url 传递的数据将从我的数据库中获取。
先encodeURIComponent
类别的值,然后再在URL中使用它。
$('#BusinessCreateCategory').change(function(){
var category=$('#BusinessCreateCategory').val();
var encoded = encodeURIComponent(category);
window.location.href='getbusinesssubcategory.php?category='+encoded;
});
与号是一个特殊字符,会混淆您尝试传递的 URL。 对值进行编码应允许您将其视为单个值。
浏览器可以通过的字符数有限制。您是否有尝试传递的完整字符串的示例?我最初怀疑这可能是编码问题。
encodeURIComponent 对正在传递的字符串进行编码。
该值应该被编码,但当您查询数据库时,它可能会查找完全匹配,如果您无法通过编码字符串看到任何输出,请使用 decodeURIComponent 在将字符串传递给 db 之前对其进行解码。在正式输入代码之前,请在 phymyadmin 检查输出。
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 用超链接替换URLS
- 使用JavaScript从超链接加载时的默认下拉值
- Hammer.js阻止在Android Webview中点击超链接
- 将超链接添加到“;标题“;标记文本
- 使用 IP 地址和超链接对数据表进行排序
- 通过超链接传递到其他页面的数据正在被切断
- 通过jQuery单击另一个按钮时动态地将数据添加到超链接
- Jquery-向数据表添加超链接
- 如何对数据表中的超链接进行数字排序
- 如何确定浏览器是否支持超链接的数据URI
- 使用JavaScript和jQuery获取一个超链接字段/列,将数据显示为SharePoint列表中的超链接
- 数据网格中的超链接控件调用javascript
- 如何在引导数据表中创建超链接或可单击的单元格
- 需要将字符串数据中的所有超链接更改为其他值
- 如何使用javascript的客户端对象模型检索sharepoint列表中的超链接数据类型列值
- 数据网格中的超链接列
- 如何从html中的超链接获取数据
- 在jquery数据表的某一列中,行单击时进行行选择,而在超链接单击时不进行行选择