在 HTML 或 Php 变量中显示 Javascript 内容

Displaying Javascript Content In HTML Or Php Variable

我有 javascript 在用户登录我的文件 indir.php 时获取用户的 Facebook 名称。但是,我无法将该名称 javascript 变量转换为 php 变量或 <input type="hidden" name="name" value="" />。目前,我可以使用以下方式获取名称:

<script>
...facebook stuff...
function login() {
  FB.api('/me', function(response) {
    document.getElementById('login').style.display = "block";
    var mos = response.name;
    document.getElementById('login').innerHTML = mos;
  }
}
...
</script>

然后显示名称使用:

<div id="login" style ="display:none"></div>

您可以使用 AJAX:

在 POST 请求中将其发送至 php
var xhr = new XMLHttpRequest();

var content = "c=" + mos;

xhr.open("POST", "serverscript.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(content);

使用类似

的方式在服务器端接收
<?php    

if (isset($_POST['c'])) {
    $data = htmlspecialchars($_POST['c'], ENT_QUOTES, 'UTF-8'); 
}

?>

这应该可以让您在字段中获取名称

首先在输入框添加一个id

<input type="hidden" name="name" id="fb_name" value="" />   

然后

<script>
...facebook stuff...
function login() {
  FB.api('/me', function(response) {
    document.getElementById('login').style.display = "block";
    var mos = response.name;
    document.getElementById('login').innerHTML = mos;
   //Enter the value in  field
    var field= document.getElementById("fb_name");
    field.value = mos;
}
...
</script>

我认为部分问题是 FB.api 调用的左括号没有闭合,请参见下面的代码片段。 如果这样做了,那么 javascript 函数将用 response.name.

的值更新 div

如果您在信息服务器端做某事,它只需要是一个 php 变量。如果需要,您可以使用 AJAX 发送它。

function login(){ 
  FB.api('/me', function(response) { 
    document.getElementById('login').style.display = "block"; 
    var mos = response.name; 
    document.getElementById('login').innerHTML = mos; 
  });
});

试试这个:

Javascript:

<script>
var name = 'Luis';
var variablejs = 'Your javascript value: ' + name ;
</script>

PHP:

<?php
$variablephp = "<script> document.write(variablejs) </script>";
echo "variablephp = $variablephp";
?>