这是我的代码
<script>
function myFunction() {
var j,i,k,x=[];
<?php $k=0; ?>;
<?php $faculys= App\faculty::all();
$i=0;
foreach($faculys as $faculty)
{
$array[]=$faculty->name;
$i++;
}
?>;
i= <?php echo $i; ?>;
for(j=0; j<i; j++)
{
x[j]='<?php echo $array[$k]; ?>';
<?php $k++; ?>;
}
k= <?php echo $k; ?>;
</script>
$ k和k的结果总是一个我的错误。
答案 0 :(得分:4)
Javascript是客户端语言。 PHP是服务器端。这意味着尽管将两者混合在一起并非不可能,但您需要非常小心这样做。
例如:
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
}
将在您的页面中显示如下,因为服务器解释了PHP,然后发送到浏览器:
<script>
function myFunc(){
<?php echo "console.log('test');"; ?>
}
</script>
另一个例子,这里是JavaScript中的PHP循环:
<script>
function myFunc(){
console.log('test');
}
</script>
将呈现为:
<script>
function myFunc(){
<?php for($i = 0; $ <10; $i++){
echo "console.log('test');";
}
?>
}
</script>
与上面相同的理论 - 一个javascript循环,但PHP内容:
<script>
function myFunc(){
console.log('test');
console.log('test');
console.log('test');
console.log('test');
console.log('test');
console.log('test');
console.log('test');
console.log('test');
console.log('test');
console.log('test');
}
</script>
这实际上会导致:
<script>
function myFunc(){
for (i = 0; i < 10; i++) {
<?php echo "console.log('" . date('Y-m-d H:i:s') . "');"; ?>
}
}
</script>
注意:这是一个有趣的问题,因为PHP <script>
function myFunc(){
for (i = 0; i < 10; i++) {
console.log('2015-09-06 18:40:15');
}
}
</script>
函数会在服务器执行时吐出当前的日期戳。在此上下文中使用它将产生脚本在服务器上执行时的日期戳,而不是在调用函数时。这意味着如果您在特定事件发生后因任何原因调用此函数(即按某个按钮),则日期戳仍将是PHP输出的日期戳 - 而不是当前日期戳。
在某些情况下,您可以将PHP变量传递给JavaScript,但是您需要让JS处理它以用于其他任何您想要用它做的事情:
date()
假设<script>
function myFunc(){
var x = <?php echo $somevar; ?>;
.. JS code ..
}
</script>
是数据库中的ID。你有一些PHP来提取它(假设在这种情况下它会是15)并因此呈现为:
$somevar
不幸的是,你想要的东西永远不会奏效。使用AJAX可能是一种可能获得所需行为的方法。
答案 1 :(得分:0)
考虑以下文件(让我们称之为“somewhere.com/helloworld.php”):
<html>
<head>
<title>hello world</title>
</head>
<body>
<script>
<?php $i = 0; ?>
for (var i = 0; i < 3; i++) {
alert(<?php echo $i; ?>);
<?php $i++; ?>
}
</script>
</body>
</html>
以下是查找和计算此文档的故事(大致):
RC 找到文档,计算每个PHP标记。
一旦“预处理”,文档如下所示:
<html>
<head>
<title>hello world</title>
</head>
<body>
<script>
for (var i = 0; i < 3; i++) {
alert(0);
}
</script>
</body>
</html>
最终结果:alert(0)
三次。