Javascript 尝试使用Ajax将数据从JS传递到PHP时出现问题
所以我正在用JavaScript函数构建一个字符串,然后我想把它传递给PHP 这是我的JavaScript块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"
<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();