首先感谢您的关注。 我想要的是使用Facebook js SDK获取用户的名称和id,并将它们发送到同一页面的php(index.php)。我设法获取用户名和ID并将它们保存在JS中的2个变量(js_fb_id和js_fb_name)中,但是当我尝试进行ajax调用并将它们发送到php时,没有任何反应。
所以,在我的index.php上,我有ajax脚本
var js_fb_id = response.id;
var js_fb_name = response.name; //this variables are set after the user is loged in
$.post( 'index.php',
{
php_fb_id: js_fb_id,
php_fb_id: js_fb_name
},
function (data){
console.log(data);
}
)
稍后,我想通过AJAX发送变量
<?php if ( isset( $_POST['php_fb_id'] ) ) {
echo $_POST['php_fb_id'];
}
?>
这可能吗?它在我使用单独的页面进行AJAX调用时有效,但是我无法从那里获取php变量到我的index.php页面。
谢谢
答案 0 :(得分:1)
所以基本上这里发生的是在页面加载时触发ajax脚本。 但是这只是在dom已经渲染之后。 要解决此问题,您需要在特定事件上触发ajax函数,例如:单击按钮。
另请注意,由于您的整个页面都是html,因此ajax功能会将整个页面作为“数据”返回。而不是你想要设置的php变量。(你将能够在控制台中看到这个)
另请注意,如果要在页面上打印值,则必须通过ajax修改回调函数中的html,例如:
$(document).ready(function() {
$('#post').click(function() {
$.post( 'text.php',
{
php_fb_id: js_fb_id,
php_fb_name: js_fb_name
},
function (data, status){
$("#txt").html(data); //you can print returned data
console.log(data);
}
)
});
});
这应该放在一个单独的php文件中,例如text.php
<?php
if ( isset( $_POST['php_fb_id'] ) ) {
echo $id = $_POST['php_fb_id'];
}
?>
答案 1 :(得分:0)
您的代码看起来很好,除了您在参数中传递两次php_fb_id。
$.post( 'index.php', {
php_fb_id: js_fb_id,
php_fb_id: js_fb_name
},
除此之外,参数也会传入index.php并被捕获。所以你可以在那里进行php操作。请告诉我您在此代码中遇到的问题是什么?一定会尽力帮助
答案 2 :(得分:0)
做这样的事情:
if ($_SERVER['REQUEST_METHOD'] === 'POST') { //check if it's Post request
if( isset( $_POST['php_fb_id'] && isset( $_POST['php_fb_name']) {
$name = $_POST['php_fb_name'];
$id = $_POST['php_fb_id'];
....
echo "OK";
}else{
echo "ERROR, need input";
}
else{
//Your Index Code Here
}