Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 如何将php变量从php文件传递到js文件?_Javascript_Php_Jquery_Html_Variables - Fatal编程技术网

Javascript 如何将php变量从php文件传递到js文件?

Javascript 如何将php变量从php文件传递到js文件?,javascript,php,jquery,html,variables,Javascript,Php,Jquery,Html,Variables,我有一个html/php复合文档,它使用来自用户的login变量。(这来自signin上的一个单独的php文件): 欢迎您 //现在,当用户使用聊天室并单击send时,我想将数据(包括用户名)从这个html文件传递到.js,这样它就可以反过来传递到另一个php文件。(顺便说一句,我尝试了以下方法,但没有成功,因为.js文件位于html/php组合的外部): $(“#newMsgSend”)。单击(函数()//触发脚本以发送消息 { $(“#newMsgCnt”).val(“”)//在用户发送消息

我有一个html/php复合文档,它使用来自用户的login变量。(这来自signin上的一个单独的php文件):

欢迎您
//现在,当用户使用聊天室并单击send时,我想将数据(包括用户名)从这个html文件传递到.js,这样它就可以反过来传递到另一个php文件。(顺便说一句,我尝试了以下方法,但没有成功,因为.js文件位于html/php组合的外部):
$(“#newMsgSend”)。单击(函数()//触发脚本以发送消息
{
$(“#newMsgCnt”).val(“”)//在用户发送消息时清除该框
var username=“”;
警报(用户名);
});

您当前的代码可能会引入一个新的错误。相反,请利用以下事实:有效的JSON是有效的JavaScript:

var username = <?php echo json_encode($login); ?>;
var用户名=;

在某些情况下,最好使用从另一个URL(通常编码为纯文本、XML或JSON)请求数据的or。一种情况是在用户加载网页后添加新项目时通知用户。

当用户登录时,为该用户创建一个会话,并使用数据库中的数据(如用户名、电子邮件、电话号码或其他)填充该会话,如下所示(假设登录正确且可信:

$_SESSION['user'] = $row; //where $row is the row of data returned from the db
然后,每当您想要访问该信息时,请在页面顶部包含以下内容:

session_start();
然后访问以下信息:

$userfirst_name=$_SESSION['user']['first_name'];
然后,您的html将类似于:

<h1> Welcome <?php echo "$userfirst_name"; ?> </h1>

感谢Ivan Rodriguez Torres和PiHag。我在两篇文章的中间找到了一个解决方案:

<input id="login" readonly type="text" <?PHP echo "value= '$login'/>"; ?>

您从何处获得$login?它是从何处分配的?它首先是如何传递到HTML页面的?您应该能够在全局范围内使用
var username
首先否?只需将它从嵌套在其中的任何jQuery函数中移除即可?在我单击发送时,警报会显示为用户名。因此我知道它不是读取变量。您可以在脚本源标记内使用php文件。除了XSS之外,字符串内的选项卡还会打断您的page@Juan门德斯:怎么回事?对我来说很好。事实上他是对的。它确实因为某种原因打破了我的剧本lol@phihag我并不是说您的解决方案会与选项卡中断,我的意思是使用
json\u encode
不是为了防止XSS,它还正确地对制表符、引号等进行编码。用户不必做任何恶意的事情来引起问题。如果将其作为表单的一部分使用,则需要名称属性,因为它不会按原样包含在表单中。此外,回显位于错误的位置,您不需要在echo-nmakes会降低代码的可读性。-它应该是value=“”,然后关闭PHP外部的输入…/>;你一定是在开玩笑,在phihag提出一个很好的建议后,你使用了这个选项,你的代码很容易受到XSS的影响。
unset($_SESSION["user"]);
<input id="login" readonly type="text" <?PHP echo "value= '$login'/>"; ?>