我想使用AJAX将数据从表单发送到我的php页面,该页面将查询数据库并返回一个html表,以便刷新带有请求数据的主页面。
所有这些都将在“实时”中完成:当您完成表单中的字段填写时,将刷新所有数据。所以我将有一个新的SQL请求的AJAX请求,并将返回新的数据。
问题:如何在php文件中忽略我的请求中的空白字段?
我的SQL请求代码(我知道如何做AJAX +返回HTML):
$req = $bdd->prepare('SELECT * FROM voyages WHERE villeChargement = :villeChargement AND villeLivraison = :villeLivraison AND debutChargementReel = :debutChargementReel AND
finChargementReel = :finChargementReel AND numeroCommande = :numeroCommande AND numeroOT = :numeroOT');
$req->execute(array(
'villeChargement' => $_POST['villeChargement'], //Yes but... If the field was blank??
'villeLivraison' => $_POST['villeLivraison'], //Yes but... If the field was blank??
'debutChargementReel' => $_POST['debutChargementReel'], //Yes but... If the field was blank??
'finChargementReel' => $_POST['finChargementReel'], //Yes but... If the field was blank??
'numeroCommande' => $_POST['numeroCommande'], //Yes but... If the field was blank??
'numeroOT' => $_POST['numeroOT'] //Yes but... If the field was blank??
));
包含输入字段的HTML:
<div class="container">
<div class="row text-center">
<div class="col-md-3 form-group">
<label>Ville de chargement</label>
<input type="text" class="form-control collectes-ville text-center" name="rechercheVilleChargement" placeholder="Chargement" id="rechercheVilleChargement">
<label>Ville de livraison</label>
<input type="text" class="form-control collectes-ville text-center" name="rechercheVilleLivraison" placeholder="Livraison" id ="rechercheVilleLivraison">
</div>
<div class="col-md-1 form-group">
</div>
<div class="col-md-1 form-group">
<label>Chargement mini</label>
<input type="text" id="debutChargementMini" class="form-control collectes-date-chargement-min text-center" name="debutChargementMini" placeholder="Date début" value="">
<label><-></label>
<input type="text" id="finChargementMini" class="form-control collectes-date-chargement-min text-center" name="finChargementMini" placeholder="Date fin" value="">
</div>
<div class="col-md-1 form-group">
<label>Chargement réel</label>
<input type="text" id="debutChargementReel" class="form-control collectes-date-chargement-min text-center" name="debutChargementReel" placeholder="Date début" value="">
<label><-></label>
<input type="text" id="finChargementReel" class="form-control collectes-date-chargement-min text-center" name="finChargementReel" placeholder="Date fin" value="">
</div>
<div class="col-md-1 form-group">
<label>Livraison maxi</label>
<input type="text" id="debutLivraisonMax" class="form-control collectes-date-chargement-min text-center" name="debutLivraisonMax" placeholder="Date début" value="">
<label><-></label>
<input type="text" id="finLivraisonMax" class="form-control collectes-date-chargement-min text-center" name="finLivraisonMax" placeholder="Date fin" value="">
</div>
<div class="col-md-1 form-group">
<label>Livraison réelle</label>
<input type="text" id="debutLivraisonReelle" class="form-control collectes-date-chargement-min text-center" name="debutLivraisonReelle" placeholder="Date début" value="">
<label><-></label>
<input type="text" id="finLivraisonReelle" class="form-control collectes-date-chargement-min text-center" name="finLivraisonReelle" placeholder="Date fin" value="">
</div>
<div class="col-md-1 form-group">
</div>
<div class="col-md-1 form-group">
<label>N° de commande</label>
<input type="text" class="form-control collectes-ville text-center" id="numeroCommande" name="numeroCommande" placeholder="N° Commande">
<label>Numéro d'OT</label>
<input type="text" class="form-control collectes-ville text-center" id="numeroOT" name="numeroOT" placeholder="Numero OT">
</div>
<div class="col-md-2 form-group">
<label>Statut</label>
<input type="text" class="form-control collectes-ville text-center" id="statut" name="statut" placeholder="Statut">
<label>Transporteur</label>
<input type="text" class="form-control collectes-ville text-center" id="transporteur" name="transporteur" placeholder="Transporteur">
</div>
</div>
</div>
jquery代码:
$(document).ready(function() {
$('#sort').change(function(){
var valeur = $('#sort option:selected').text();
$.ajax({
url: 'MODEL/ajaxSearchThirds.php',
type: 'post',
dataType: 'json',
data: data, //All the fields data
success: function(data) {
$('tbody').html(data.table);
}
});
})
我是初学者,如果你认为我会做的是一个坏主意,我会接受所有的想法。
答案 0 :(得分:1)
有点hacky回答,但你可能会发现它有用,我的想法是: 只检查js中的空值,如果一个是空的 - 用任何字符的符号替换它(mysql中的%),然后在查询中用'like'替换all =:
然后您的查询将返回非空字段的所有结果,但如果某些字段为空,则它将接受任何值。您没有指定,但我假设所有字段都不为空