繁体   English   中英

通过onchange事件传递值时未捕获ReferenceError

[英]Uncaught ReferenceError when passing values through onchange event

我试图理解为什么在使用randomURL函数时出现Uncaught ReferenceError。 page1.php创建它,将其传递到page2.php,然后将其传递给page3.php。 当我做出选择并启动onchange事件时,什么也没有发生。 任何建议或澄清将不胜感激。

page1.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中。

page3.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>

未捕获的ReferenceError: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.'\')">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM