Jquery加载并将变量发送到url

时间:2015-01-14 19:11:59

标签: javascript jquery

我使用Jquery的“load”函数来加载页面,在这个url中我通过“load”发送一些值作为这个例子:

jQuery("#load_data").show(1000).load("index.php?send_values="+datasend+"");

值“datasend”从函数javascript中获取这些值:

    function getvalues()
    {
    var getdata="value 1";
    getdata +="value 2";
    getdata +="value 3";

var datasend=getdata;
    }

如果在函数中插入警报,我会获得所有值,例如:

        function getvalues()
        {
        var getdata="value 1";
        getdata +="value 2";
        getdata +="value 3";

    var datasend=getdata;

alert("Show"+datasend);
        }

但如果我使用Jquery的加载,这不起作用:

       function getvalues()
        {
        var getdata="value 1";
        getdata +="value 2";
        getdata +="value 3";

    var datasend=getdata;

jQuery("#loader").load("index.php?send_values="+datasend);
        }

页面的另一面我想发送/获取值我有PHP代码,但是当我这样做时:

<?php echo $_REQUEST['send_values'];?>

只获取此案例中的第一个数据“值1”并且没有所有值,但是使用javascript“alert”我得到所有值,但加载的jquery没有发送URL的所有值最终获取所有值

感谢您的帮助,问候

2 个答案:

答案 0 :(得分:1)

如果再次检查,您会看到到达服务器的数据不是"value 1",而只是"value"

正确的URL不能包含空格,因此load method使用空格作为URL和可选选择器之间的分隔符,以从加载的数据中获取片段。由于datasend中的值中有空格,因此只有第一个空格的部分包含在URL中,其余部分被解释为选择器。

您可以使用encodeURIComponent方法对值进行编码,以便可以在网址中使用:

jQuery("#loader").load("index.php?send_values=" + encodeURIComponent(datasend));

或者,您可以使用load方法的data参数来包含数据:

jQuery("#loader").load("index.php", { send_values: datasend });

答案 1 :(得分:0)

尝试做:

var datasend=encodeURIComponent(getdata);