对于项目工具我想要在输入我想要的书的开头和结尾后检索可用汽车列表。
这是包含发送和接收汽车列表的表单和脚本的部分。
<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
答案 0 :(得分:0)
首先修复从输入字段中检索值的方法:
var debut = $("#dte_debut").val();
var fin = $("#dte_fin").val();
然后在php文件中以正确的方式请求它,因为它是POST而不是GET方法:
$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);
}