Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过超链接传递到其他页面的数据正在被切断_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 通过超链接传递到其他页面的数据正在被切断

Javascript 通过超链接传递到其他页面的数据正在被切断,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个包含2的表单,第一个select在页面加载时自动填充,而第二个select根据第一个select中选择的选项填充 为了实现这一点,每当select的状态发生变化时,第一个页面中的选定值将被传递到一个单独的页面,用于填充第二个页面 问题 在这种情况下,通过url传递的所选值Food&Beverages被中途截断,导致不完整的字符串被发送到第二个的处理页面,从而导致其无法运行 为查明问题而采取的步骤 我回显了通过url传递的值,只得到了食物,其余的字符串被截断。我尝试将字符串值替换为Food

我有一个包含2的表单,第一个select在页面加载时自动填充,而第二个select根据第一个select中选择的选项填充

为了实现这一点,每当select的状态发生变化时,第一个页面中的选定值将被传递到一个单独的页面,用于填充第二个页面

问题

在这种情况下,通过url传递的所选值Food&Beverages被中途截断,导致不完整的字符串被发送到第二个的处理页面,从而导致其无法运行

为查明问题而采取的步骤 我回显了通过url传递的值,只得到了食物,其余的字符串被截断。我尝试将字符串值替换为Food and Beverage,整个过程非常完美,这使我得出结论,字符串被切断是因为出现了符号&符号,这导致计算机将符号后面的字符串部分视为通过URL传递的另一个值。但是,因为我没有将它分配给变量,所以它没有被传递

问题:

我有没有办法在不切断的情况下传递值

代码摘录:

处理页面

编辑:尝试了encodeURIComponent,但是数据没有被编码,因为我可以从处理apge的url中看到它在与符号处被切断。但是,如果我手动输入url作为字符串,然后使用encodeURIComponent对其进行编码,它工作得非常好。有人能解释一下为什么我不能对$'BusinessCreateCography'.val;'进行编码吗?谢谢

E.G.这部作品

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传递的数据将从我的数据库中获取。

浏览器限制可以传递的字符数。您是否有尝试传递的完整字符串的示例?我最初怀疑这可能是一个编码问题。

在URL中使用category之前,需要对category的值进行编码

$('#BusinessCreateCategory').change(function(){

    var category=$('#BusinessCreateCategory').val();
    var encoded = encodeURIComponent(category);
    window.location.href='getbusinesssubcategory.php?category='+encoded;

});

符号是一种特殊字符,它会将您试图传递的URL弄乱。对值进行编码应允许您将其视为单个值。

encodeURIComponent对传递的字符串进行编码


应该对该值进行编码,但当您查询数据库时,它可能会查找精确匹配,如果您无法通过编码字符串看到任何输出,请在将字符串传递给数据库之前使用decodeURIComponent对其进行解码。在正式输入代码之前,请检查phymyadmin的输出。

您是否尝试过在值上使用php urlencode?我强烈建议您不要使用字符串作为选项值,而是使用和自动递增的索引ieid@ChristopherMorrissey为什么建议使用自动递增索引而不是字符串作为选项值?@kenits cleaner,faster,您可以有两个子类别,它们的名称相同,但父类别不同,等等。我已尝试按照您的示例对代码进行编码,但是字符串仍然没有被编码?我试图传递的值是直接从我的数据库中提取的,如果有帮助的话。你能在浏览器网络面板中查看提交的确切URL吗?你能粘贴到这里吗?在我看来,首先呈现下拉列表的php并没有在值周围加引号。HTML看起来像etc。如果没有引号,则不能在值中包含空格。
var category=$('#BusinessCreateCategory').val();
    var encoded= encodeURIComponent(category);
    window.location.href='getbusinesssubcategory.php?category='+encoded;
$('#BusinessCreateCategory').change(function(){

    var category=$('#BusinessCreateCategory').val();
    var encoded = encodeURIComponent(category);
    window.location.href='getbusinesssubcategory.php?category='+encoded;

});