javascript - 为什么我的php页面显示错误
问题描述
我正在尝试创建一个仅使用 PHP 的网页(不需要任何 HTML 元素),但是当我运行该页面时,出现以下错误:
这是我的页面的代码:
<script>
<?php
if(isset($_COOKIE['string']) and isset($_COOKIE['studentarrays'])){
$string = $_COOKIE['string'];
$array = explode(",",$string);
array_shift($array);
$studentstring = $_COOKIE['studentarrays'];
$studentarrays = explode(",",$studentstring);
?>
var array = <?php echo $studentarrays ?>;
alert(array);
<?php
}
?>
</script>
我做错了什么?
编辑:正如有人指出我有一个 SESSION 变量而没有启动会话,所以这部分错误现在已经得到修复。另外,当我将代码复制到该网站时,我忘记包含会话代码,很抱歉造成混淆。感谢您的所有回复,看来我在这个页面上犯了一些错误,所以我决定返回并尽可能简化这个页面,删除任何我不需要的东西。这是我的新代码:
<script>
<?php
include"databaseconnection.php";
session_start();
if(isset($_COOKIE['studentarrays'])){
$studentstring = $_COOKIE['studentarrays'];
$studentarrays = explode(",",$studentstring);
$teacherid = $_SESSION['username'];
}
?>
</script>
这似乎现在没有错误,但我不知道它到底是什么导致了错误。如果我找出原始代码导致错误的部分,我将更新这篇文章,在此之前请忽略这个问题
请试试 -
jlabel.setText("Your Text");
jLabel.setVisisble(true);
解决方案
如果您想使用 JavaScript 对象表示法(JSON)将数组(php)传递给 JS。
使用json_encode()
函数:该函数既可以接受一维数组,也可以接受多维数组。
const array = JSON.Parse("<?php echo json_encode($studentarrays) ?>");
alert(array);
或者
const array = "<?php echo json_encode($studentarrays) ?>";
console.log(array);
您也可以使用 PHPimplode()
函数:
implode()
函数用于构建一个字符串,该字符串在 JavaScript 中成为数组文字。
<?php
// Creating a PHP Array
$studentarrays = array('John', 'Foo', 'Bar');
?>
const array = "<?php echo '["' . implode('", "', $studentarrays) . '"]' ?>";
console.log(array);
推荐阅读
- go - 执行顺序与代码顺序不同
- javascript - 如何在选择选项上触发点击事件
- java - 为什么我可以将浮点数传递给 Double 的构造函数?
- automation - C# UDF Worksheetfunction.SumIf 不工作
- python - 向由众多类别组成的条形图添加图例
- python - Creating a Dict from CSV dataflow python
- .net - dotnet build 未编译 .NET Framework 4.6.1 应用程序
- haskell - 类型级列表的行多态相等
- jquery - Storing base64 encoded signatures in database
- google-maps-api-3 - google maps API for a place how many people have made reviews and rating?
问题描述
我正在尝试创建一个仅使用 PHP 的网页(不需要任何 HTML 元素),但是当我运行该页面时,出现以下错误:
这是我的页面的代码:
<script>
<?php
if(isset($_COOKIE['string']) and isset($_COOKIE['studentarrays'])){
$string = $_COOKIE['string'];
$array = explode(",",$string);
array_shift($array);
$studentstring = $_COOKIE['studentarrays'];
$studentarrays = explode(",",$studentstring);
?>
var array = <?php echo $studentarrays ?>;
alert(array);
<?php
}
?>
</script>
我做错了什么?
编辑:正如有人指出我有一个 SESSION 变量而没有启动会话,所以这部分错误现在已经得到修复。另外,当我将代码复制到该网站时,我忘记包含会话代码,很抱歉造成混淆。感谢您的所有回复,看来我在这个页面上犯了一些错误,所以我决定返回并尽可能简化这个页面,删除任何我不需要的东西。这是我的新代码:
<script>
<?php
include"databaseconnection.php";
session_start();
if(isset($_COOKIE['studentarrays'])){
$studentstring = $_COOKIE['studentarrays'];
$studentarrays = explode(",",$studentstring);
$teacherid = $_SESSION['username'];
}
?>
</script>
这似乎现在没有错误,但我不知道它到底是什么导致了错误。如果我找出原始代码导致错误的部分,我将更新这篇文章,在此之前请忽略这个问题
请试试 -
jlabel.setText("Your Text");
jLabel.setVisisble(true);
如果您想使用 JavaScript 对象表示法(JSON)将数组(php)传递给 JS。
使用json_encode()
函数:该函数既可以接受一维数组,也可以接受多维数组。
const array = JSON.Parse("<?php echo json_encode($studentarrays) ?>");
alert(array);
或者
const array = "<?php echo json_encode($studentarrays) ?>";
console.log(array);
您也可以使用 PHPimplode()
函数:
implode()
函数用于构建一个字符串,该字符串在 JavaScript 中成为数组文字。
<?php
// Creating a PHP Array
$studentarrays = array('John', 'Foo', 'Bar');
?>
const array = "<?php echo '["' . implode('", "', $studentarrays) . '"]' ?>";
console.log(array);