1

フォームでカスケード選択を作成しようとしていますが、うまく機能しません。select 要素の onChange() が起動しないようです。

php

$flight_sql = "SELECT * FROM wp_flr_flights";
$flight_result = mysql_query($flight_sql);
echo '<select name="location" id="select-location onChange="changeSecond(this.value)">';
echo '<option value="">Select</option>';
while ($flt_loc_rows = mysql_fetch_assoc($flight_result)) {
    $loc_id = $flt_loc_rows["location_id"];
    $loc_name = $flt_loc_rows["location_name"];
    echo '<option value="'.$loc_id.'">'.$loc_name.'</option>';
}
echo '</select>';

JavaScript

    function changeSecond(first){
alert('dasda');
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        var res=xmlhttp.responseText;
        document.getElementById("second").innerHTML=res;
    }
}
xmlhttp.open("GET","reservations-plane.php?first="+first,true);
xmlhttp.send();
}

予約-plane.php

    global $wpdb, $page_url;
    $location=mysql_real_escape_string($_REQUEST["first"]);
    echo $userid.'ddd';
    $flight_sql = "SELECT ".$location." FROM wp_flr_flights GROUP BY ".$location;
    $flight_result = mysql_query($flight_sql);
    echo '<select name="plane_type_choose">';
    while ($flt_plane_rows = mysql_fetch_row($flight_result)) {
        $plain_id = $flt_plane_rows["plane_id"];
        $plane_type = $flt_plane_rows["plane_type"];
        echo '<option value="'.$flt_plane_rows[0].'">'.$flt_plane_rows[0].'</option>';
    }
    echo '</select>';
4

1 に答える 1

4

コードにスペルミスがあります:

$function... する必要がありますfunction

function changeSecond(first){
   ...
}

注: エラー コードを確認してください

また、生成された html にエラーがあります。

echo '<select name="location" id="select-location onChange=....>';

id 属性の最後の二重引用符がありません。

于 2012-10-11T20:50:52.517 に答える