0

次のスクリプトを使用して、データベースからレコードを取得し、jquery、ajax、および php を使用してそれらを選択ボックスに入れています。Select 2 http://ivaynberg.github.io/select2/select-2.1.html#basicsを使用して、選択ボックスもスタイル設定され、機能が追加されます。

最初の選択ボックスから顧客を選択し、次に 2 番目のボックスから車両を選択すると、これは正常に機能します........その後、気が変わって別の会社を選択すると、車両ボックスは最後の登録のままになります。に戻りません:

  <option>Select A Customers Vehicle</option>

次に、車両選択ボックスをクリックすると、会社から車両を選択でき、最後のクエリからの「ゴースト車両」が消えるので、機能します。会社を再度変更したときだけ、リセットしたいだけです車両を選択するまで、車両ボックスをデフォルトに戻します。

これはメインページです:

    <script src="js/jquery/jquery.js"></script>
    <script src="js/jqueryui/js/jquery-ui.js"></script>
       <link href="js/select2/select2.css" rel="stylesheet"/>
        <script src="js/select2/select2.js"></script>
         <script>
            $(document).ready(function() { $("select").select2(); });

        </script>
    <?php
    if (session_status() !== PHP_SESSION_ACTIVE) {session_start();}
    if (isset($_SESSION['key'])) {$sessionkey = $_SESSION['key'];}else {$sessionkey = '';}
    if ($sessionkey == 'sbhjbKA2bsbhjbKA209bhjbKA2bsbhjbKA209KaXff19u0bsbhjbKA209KaXff19u9Ka'){
    include 'connectmysqli.php';
         echo '<link rel="stylesheet" href="css/template/template.css" />';
    echo '<strong class="pagetitle">Add New Sale</strong>
     ';
    $saleID = rand().rand();
    $today = date("Y-m-d");
    echo '<form method="post" action="addsalesubmit.php">';
    echo '<input type="hidden" value="'.$saleID.'" name="saleID" id="saleID">';
    echo '<input type="hidden" value="'.$today.'" name="date" id="date">';
    ?>
    <html>
        <head>
            <meta http-equiv="Content-type" content="text/html; charset=utf-8">
            <title>Select test</title>
        <script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
        $('#customer').on('change', function (){
            $.getJSON('select.php', {customerId: $(this).val()}, function(data){
                var options = '';
                for (var x = 0; x < data.length; x++) {
                    options += '<option value="' + data[x]['id'] + '">' + data[x]['reg'] + ' - ' + data[x]['make'] + ' - ' + data[x]['model'] + '</option>';
                }
                $('#vehicle').html(options);
            });
        });
    });
    </script>
        </head>
        <body>
        <br>
            <select id="customer">
            <option>Please Select / Search For A Customer</option>
            <?php
    $sql = <<<SQL
    SELECT *
    FROM `customers`
    SQL;
    if(!$result = $db->query($sql)){ die('There was an error running the query [' . $db->error . ']');}
    while($row = $result->fetch_assoc()){
    if ($row['bussinessname'] == ''){$name = $row['title'].' '.$name = $row['firstname'].' '.$name = $row['surname'];}else
    {$name = $row['bussinessname'];}
    echo '<option value="'.$row['customerID'].'">'.$name.'</option>';
    }
    echo '</select></p>';
            ?>
            </select>
            <br>
            <br>
        <select id="vehicle">
      <option>Select A Customers Vehicle</option>
    </select>
        </body>
    </html>
    <?php
    }
    else
    {echo '<h1 style="font-family:Verdana, Geneva, sans-serif; color:red;">Access Denied !</h1>';}
    ?>

これは、すべてのフェッチを行う php スクリプトです。

    <?php include 'connectmysqli.php'; ?>
    <?php
    $id = $_GET['customerId'];
    $sql = 'SELECT * FROM vehicles WHERE customerID = ' . (int)$id;
    $result = $db->query($sql);

    $json = array();
    while ($row = $result->fetch_assoc()) {
      $json[] = array(
        'id' => $row['vehicleID'],
        'reg' => $row['reg'],
        'make' => $row['make'],
        'model' => $row['model']
      );
    }
    echo json_encode($json);

    ?>
4

2 に答える 2