2

プロジェクト車両の場合、実行したい本の開始と終了を入力した後、利用可能な車のリストを取得したいと考えています。

これは、車のリストを送受信するためのフォームとスクリプトを含む部分です。

<form method="POST" name="reserv">
            <label for="dte_debut" class="col_3">Date début :</label>
            <input  id="dte_debut" name="dte_debut" class="col_9" type="text" />

            <label for="dte_fin" class="col_3">Date de fin :</label>
            <input  id="dte_fin" name="dte_fin" class="col_9" type="text" />

            <select name="listeVoiture" id="listeVoitureId" disabled="true"></select>

            <textarea id="resJson"></textarea>
        </form>
        <script type="text/javascript">
            $(document).ready(function(){
                //Recuperation des dates debut et fin des inputs
                var debut = $("#dte_debut").attr('value');
                var fin = $("#dte_fin").attr('value');


                        $.post("processeur.php",
                        { leDebut: debut, laFin: fin },
                        function(data)
                        {
                            var options = "";
                            if (data != null) 
                            {                                        
                                for (var i = 0; i < data.length; i++)
                                {
                                    options += '<option value="' + data[i].value + '">' + data[i].label + '</option>';                                
                                }
                            }
                            //envoyer le resultat dans le select
                            $("#listeVoitureId").html(options);
                            $("#resJson").attr("value", options);

                            //si le resultat n'est pas vide
                            //activer le select
                            if (options != "") 
                            {
                                $("#listeVoitureId").attr("disabled", false);
                            }
                        },"json");

            });                                
        </script>

そして、これが私のprocesseur.php処理クエリで、結果を返します

    <?php 
      include("../fonctions/mysql.php");        
      connexion();      
      $leDebut = $_GET['leDebut'];  
      $laFin = $_GET['laFin'];

     $query = "SELECT id , plaque FROM voiture WHERE id NOT IN 
(SELECT voiture.id FROM voiture INNER JOIN reservation 
ON voiture.id = reservation.fk_voiture      
WHERE ((debut BETWEEN '$leDebut' AND '$laFin') AND (fin BETWEEN '$leDebut' AND '$laFin')) OR (debut < '$leDebut' AND fin BETWEEN '$leDebut' AND '$laFin') 
OR (debut BETWEEN '$leDebut' AND '$laFin' AND fin > '$laFin') 
OR (debut < '$leDebut' AND fin > '$laFin')) ";

        $data = mysql_query($query);    
        $result = array();      
        while($ligne = mysql_fetch_array($data))    
          {         
            $result[] = array("value" => $ligne['id'] , "label" => $ligne['plaque']) ;
          }

        echo json_encode($result);   
?>

私を助けてくれてありがとう、私はjqueryとjsonから始めました

4

1 に答える 1

0

まず、入力フィールドから値を取得する方法を修正します。

var debut = $("#dte_debut").val();
var fin = $("#dte_fin").val();

次に、これはPOSTであり、GETメソッドではないため、phpファイルで正しい方法でリクエストします。

$leDebut = $_POST['leDebut'];  
$laFin = $_POST['laFin'];

受け取ったデータを調べて選択ボックスに追加する場合は、次を使用します。

for (var key in data){
      var option = $('<option />').val(data[key].value).html(data[key].label);
      $('#listeVoitureId').append(option);
}
于 2012-10-03T10:22:39.920 に答える