在 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>

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

首先向输入字段添加 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; 
  });
});

您可以使用 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'); 
}
?>

试试这样的事情:

Javascript:

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

.PHP:

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