0

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>

Uncaught ReferenceError: d4KLzmXt24EeoOB が定義されていません

function showbookings(str, pass) {
    if (str === "") {
        document.getElementById("txtBookings").innerHTML = "";
        return;
    }
4

1 に答える 1

0

文字列をアポストロフィまたは引用符で囲む必要があります。ここにあるphpの不完全な部分に表示されているアポストロフィ:

<select name="bookings" onchange="showbookings(this.value,'.$mycode.')">

いくつかの文字列を連結するためのものです。しかし、js コードには区切り文字がありません。つまり、次のようになります。

<select name="bookings" onchange="showbookings(this.value,\''.$mycode.'\')">
于 2013-10-24T15:04:34.203 に答える