尝试使用Ajax将数据从JS传递到PHP时遇到麻烦

时间:2017-05-19 17:20:22

标签: javascript php ajax

所以我用JavaScript函数构建一个字符串,然后我想把它传递给PHP。

这是我的JavaScript块

<script>
        function passVal(){

            var strUrl = buildStringUrl(lat1, lng1, lat2, lng2);
            var data = {
                fn: strUrl,
                str: "testString"
            };

            $.post("home.php", data);
        }
        passVal();

</script>

当我尝试从POST恢复那些数据时:

<?php 
       $reqUrl  = $_POST['fn'];
       echo $reqUrl;
?>

我在

上遇到PHP错误
Notice: Undefined index: fn

但是fn应该已经在POST中定义了。我错过了什么?

编辑:当我检查chrome上的“网络”选项卡时,您可以看到名称为&#34; fn&#34;您可以在下一个image上看到“表单数据”部分。该字符串是一个URL。

2 个答案:

答案 0 :(得分:-1)

您可能需要对要传递的网址进行编码。试试这个:

function passVal() {

    var strUrl = buildStringUrl(lat1, lng1, lat2, lng2);
    var data = {
        fn: encodeURIComponent(strUrl),
        str: "testString"
    };

    $.post("home.php", data);
}
passVal();

答案 1 :(得分:-2)

问题。

<script>
    function passVal(){
        ...
    }
    passVal();
</script>

passVal()需要一个事件。可能它适用于初始化(一次),但你看一下以后的时间。

<a onClick="passVal();">click</a>

那会怎么样?

亲切的问候