[英]Acess php variable in javascript and vise versa
假設我有php頁面index.php
<?php
$x=$_POST[sent] // I get some value in #x
?>
<html>
<head>
<script>
function getVar()
{
var x= <How to fetch $x from php code>
alert(x);
}
</script>
</head>
<body>
<button type="submit"> click </buttton>
</body>
</html>
如何在getVar(_)
函數中獲取$ x? 或者另一種情況是JS中有一些變量然后將它變成PHP代碼?
有可能嗎?
其實我有index.php並通過ajax請求加載新頁面url.php。 我想向url.php發送一些變量,並希望在其中的JS代碼中訪問它們。
這是我的ajax請求:
var id=mydata.id; // Guess I am getting some data here
$.ajax({
url:'url.php'
,async: true
,cache: false
,dataType: 'html'
,success: function(data){
$('body').html(data);
FB.XFBML.parse();
}
我想在ajax請求中將id
發送到url.php。 我將其作為$x
獲取,並希望在JS代碼中使用它。
php to javascript
可以通過使用來完成
<?php $x = "iam a php variable"; ?>
<script>
function getVar()
{
var x= "<?= $x; ?>";
alert(x); //alerts **iam a php variable**(value of $x from php)
}
</script>
反之亦然可以通過Ajax完成。 這是一個簡單的例子
<script>
function showUser()
{
var str= "iam a javascript variable";
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText); //alerts response from php
}
}
xmlhttp.open("GET","new.php?q="+str,true); //you can send request through post or get methods
xmlhttp.send();
}
</script>
在這里,我通過使用GET的ajax在php中獲取一個javascript變量。 在new.php中,我只是打印出通過GET收到的請求
<?php
print $_GET["q"]; //prints **iam a javascript variable**(value of str from javascript)
?>
PHP和Javascript之間的通信是客戶端 - 服務器通信的典型示例。 在這種情況下,PHP是您的服務器應用程序,Javascript是您的客戶端應用程序。 為此通信建立了許多協議,但您應該查看AJAX和RESTful服務。
為了理解發生了什么,我建議您從PHP程序員的角度閱讀有關HTTP和REST的本教程。 在設計客戶端 - 服務器應用程序時,PHP將通過應用業務邏輯和與數據庫通信來“生成”所有內容,並且Javascript會在某些事件(點擊,顯示表等)上向PHP詢問此內容。 PHP而不是輸出HTML將輸出XML或JSON,因此您可以在Javascript中解析和顯示該數據。
如果您只是想將$x
變量的值傳遞給JavaScript,那么可以按如下方式完成:
function getVar()
{
var x= "<?php echo htmlspecialchars($x); ?>";
alert(x);
}
這是一個有效的例子:
<?php
$x = $_POST['sent'] // I get some value in #x
?>
<html>
<head>
<script>
function getVar()
{
var x= "<?php echo htmlspecialchars($x); ?>";
alert(x);
}
</script>
</head>
<body>
<button type="submit" onclick="getVar()"> click </buttton>
</body>
</html>
如果腳本正確接收到$x
變量,那么當您單擊按鈕時它將發出alert
。
轉移方式:
function getVar($var)
{
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
$phpVar = xmlhttp.responseText;
return $phpVar;
}
}
xmlhttp.open("POST","/yourPage.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("var=" + $var);
}
然后在yourpage.php上:
<?
if (isset($_POST["var"])) {
die($_POST["var"]);
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.