我试图理解为什么在使用随机URL函数时出现未捕获的引用错误。 page1.php 创建它,将其传递到第 2 页.php,然后将其传递到第 3 页.php。当我做出选择并启动 onchange 事件时,没有任何反应。任何建议或澄清将不胜感激。
页1.php
<?php
$mycode = randomURL();
$url = '/page2.php?code='.$mycode;
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
?>
function randomURL() {
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array();
$alphaLength = strlen($alphabet) - 1;
for ($i = 0; $i < 15; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $alphabet[$n];
}
return implode($pass);
}
当 randomURL 运行时,它会创建一个类似于 d4KLzmXt24EeoOB 的代码,并将其放在 url 中。
第 3 页.php代码为:
<?php
$mycode = $_GET['code'];
<select name="bookings" onchange="showbookings(this.value,'.$mycode.')">
<option value="">Select Booking Types To See:</option>
<option value="1">All Booking</option>
<option value="2">Open Bookings</option>
<option value="3">Closed Bookings</option>
</select>
?>
当 page3.php 运行时,这里是页面源结果:
<select name="bookings" onchange="showbookings(this.value,d4KLzmXt24EeoOB)">
<option value="">Select Booking Types To See:</option>
<option value="1">All Booking</option>
<option value="2">Open Bookings</option>
<option value="3">Closed Bookings</option>
</select>
未捕获的引用错误: d4KLzmXt24EeoOB 未定义
function showbookings(str, pass) {
if (str === "") {
document.getElementById("txtBookings").innerHTML = "";
return;
}
您应该将字符串括在撇号或引号之间。您在 php 不完整部分中显示的撇号在这里:
<select name="bookings" onchange="showbookings(this.value,'.$mycode.')">
用于连接一些字符串。但是你在 js 代码中没有分隔符。所以这可能是这样的:
<select name="bookings" onchange="showbookings(this.value,''.$mycode.'')">