我们可以在javascript中使用<?php ?>
标记吗?如果是,那么我的下一个问题是;我们可以在此标签中使用会话吗?例如:
success:function(data)
{
if(data)
{
<?php
if(isset($_SESSION['UserId']))
{ ?>
window.location.href="coll_delivery_det.php";
}
else
{
?> window.location.href="courier.php"; <?php
}
} ?>
}
答案 0 :(得分:9)
如果我理解你想做什么,你会想用php来回应你的javascript命令。
success:function(data)
{
if(data)
{
<?php
if(isset($_SESSION['UserId']))
{
echo "window.location.href=\"coll_delivery_det.php\";";
}
else
{
echo "window.location.href=\"courier.php\";";
}
} ?>
}
答案 1 :(得分:1)
是的,只要您在将作为PHP执行的文件中执行此操作,但您的代码在语法上与我所看到的不一致。试试这个:
success:function(data) {
if(data) {
<?php if(isset($_SESSION['UserId'])) { ?>
window.location.href="coll_delivery_det.php";
<?php } else { ?>
window.location.href="courier.php";
<?php } ?>
}
}
值得注意的是,你不能走另一条路。 Javascript变量不能在PHP代码中使用,因为当用户浏览器执行Javascript时,PHP执行周期终止。以这种方式传回它的唯一方法是发出Ajax请求。
此外,每次加载页面时都会运行PHP,因此如果设置了$_SESSION['UserId']
,则使用您的代码,然后用户浏览器才能看到:
success:function(data) {
if(data) {
window.location.href="coll_delivery_det.php";
}
}
否则,如果未设置,则只会从PHP呈现为:
success:function(data) {
if(data) {
window.location.href="courier.php";
}
}
这样就可以从PHP代码中生成javascript。
答案 2 :(得分:1)
实际上,您无法在JavaScript中使用PHP标记。
你只能使用PHP 生成整个JS代码或只有一些数据。
答案 3 :(得分:1)
此处发布的具体解决方案可以解决您目前的情况,我只想谈谈他们背后的原因。
Javascript逻辑在您的浏览器中执行。 PHP逻辑在服务器上执行。
直接在javascript中嵌入条件PHP语句将无法满足您的需求,但您可以使用PHP生成浏览器需要执行的javascript。
答案 4 :(得分:0)
是的,php可以生成任何东西:html,css和JavaScript。所以你可以在.php页面上做类似的事情:
function() {
<?php if($data) { ?>
window.location.href="coll_delivery_det.php";
<?php } else { ?>
window.location.href="courier.php";
<?php } ?>
}
但是,您需要记住PHP正在生成JavaScript作为任何其他文本,因此您不能在PHP脚本中使用Javascript变量。例如。类似的东西不起作用:
function test(){
var r=1;
<?php if ($r==1){ ?>
alert('r = 1');
<?php }?>
}
答案 5 :(得分:0)
是。但只有当页面作为实际的PHP页面执行时才会执行。
如果您通过javascript或HTML使用PHP代码我建议使用templatish语句,如下所示:
<?php if ($someVariable) : ?>
var i = 0;
<?php else : ?>
var i = 2;
<?php endif; ?>
关闭哪些陈述会更清楚。而不是以下:
<?php if ($someVariable) { ?>
var i = 0;
<?php } else { ?>
var i = 2;
<?php } ?>
答案 6 :(得分:0)
如果你正在使用apache,你可以在你的javascript目录中创建一个.htaccess文件,其中包含以下内容:
AddHandler php-cgi .js
这将使您的.js文件以php身份运行,但保留其原始扩展名。
答案 7 :(得分:0)
最简单的方法是创建一个生成动态javascript的页面,并包含javascript的标题。
<强> mysite.com/js.php 强>
<?php header("Content-type: application/x-javascript");?>
success:function(data) {
if(data) {
<?php if(isset($_SESSION['UserId'])) { ?>
window.location.href="coll_delivery_det.php";
<?php } else { ?>
window.location.href="courier.php";
<?php } ?>
}
}
但你可能不想这样做..浏览器将包含的javascript文件保存在缓存中,你可能会遇到一些问题..
最好的方法是将js文件分开,并使用<script>
<header>
标记将一些参数传递给函数或类