1

私の問題の解決策を探すために約5日間答えを探した後、私は助けを求めたほうがよいと思いました。動作しそうにないカスケードドロップダウンに取り組んでいます。

Mysqlデータは、国(varchar)と地域(varchar)、ドキュメントの名前(varchar)、ドキュメントへのリンク(varchar)、および追加された日付(timestamp)がある1つのテーブルに保存されます。

最初のドロップダウンが、リージョンを含む2番目のドロップダウンにつながるようにします。多くのチュートリアルを見ましたが、PDOまたはMysqliのいずれかを使用して機能するチュートリアルが見つからないようです。フォームを送信するときに、ドキュメントの名前をハイパーリンクとして表示し、日付を追加します。

私は使い始めました:http ://www.electrictoolbox.com/json-data-jquery-php-mysql/

これは私のコードです:

「ドロップダウンサイト」

 <form>

    <select name="country" id="countryname">
        <option>Sverige</option>
        <option>Norge</option>
        <option>Danmark</option>
        <option>Finland</option>

    </select>  


    <select name="region" id="regionname">
    </select>


</form>

Javascript(jQuery)

function popregion() {

$.getJSON('/blanketter_func2.php', {countryname:$('#countryname').val()}, function(data) {


    var select = $('#regionname');
    var options = select.prop('options');
    $('option', select).remove();

    $.each(data, function(index, array) {
        options[options.length] = new Option(array['region']);
    });
});
}

$(document).ready(function() {

popregion();
$('#countryname').change(function() {
    popregion();
});
});

関数ファイル(blanketed_func2.php)。

<?php
$dsn = "mysql:host=localhost;dbname=blanketter";
$username = "root";
$password = "root";
$pdo = new PDO($dsn, $username, $password);

$rows = array();
if(isset($_GET['countryname'])) {
$stmt = $pdo->prepare("SELECT region FROM blanketter WHERE country = ? ORDER BY         region");
$stmt->execute(array($_GET['countryname']));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

}
echo json_encode($rows);

?>

私はjQueryバージョン1.9.1を使用していますが、助けていただければ幸いです。

/ステン

4

1 に答える 1

0

問題はJavascripにありました。Jquery 1.9 以降、.live は .on に変更されました。正しい Jquery コードは次のとおりです。

var formObject = {
run : function(obj) {
    if (obj.val() === '') {
        obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
    } else {
        var id = obj.attr('id');
        var v = obj.val();
        jQuery.getJSON('func/blankett_func.php', { id : id, value : v }, function(data) {
            if (!data.error) {
                obj.next('.update').html(data.list).removeAttr('disabled');
            } else {
                obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
            }
        });
    }
}
};
$(function() {

$('.update').on('change', function() {
    formObject.run($(this));
});

});
于 2013-02-26T00:06:35.570 に答える