Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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 尝试使用Ajax将数据从JS传递到PHP时出现问题_Javascript_Php_Ajax - Fatal编程技术网

Javascript 尝试使用Ajax将数据从JS传递到PHP时出现问题

Javascript 尝试使用Ajax将数据从JS传递到PHP时出现问题,javascript,php,ajax,Javascript,Php,Ajax,所以我正在用JavaScript函数构建一个字符串,然后我想把它传递给PHP 这是我的JavaScript块 <script> function passVal(){ var strUrl = buildStringUrl(lat1, lng1, lat2, lng2); var data = { fn: strUrl, str: "testString"

所以我正在用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>
但fn应该已经在POST中定义了。我错过了什么

编辑:当我检查chrome上的网络选项卡时,你可以在表单数据部分看到名为“fn”的字符串,正如你在下一页看到的那样。字符串是URL。

问题

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

函数passVal(){
...
}
passVal();
passVal()需要一个事件。可能它只在初始化时起作用(一次),但您可以稍后再看

<a onClick="passVal();">click</a>
点击
然后呢


亲切问候

您可能需要对正在传递的URL进行编码。试试这个:

function passVal() {

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

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

请检查strUrl的内容,如果未定义,则不会添加到帖子中
变量转储(文件获取内容(“php://input"));@Djaevel它是一个字符串,我已经检查过了。@AgamBanga它是空的。输出为“array(size=0)empty”:(那么
var\u转储(file\u get\u contents()php://input);
?您肯定不需要这样做。jQuery将为您这样做。手动操作将对其进行双重编码。
<a onClick="passVal();">click</a>
function passVal() {

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

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