Php 使用SQL查询的Ajax忽略提交表单中的空白字段
我想使用AJAX将表单中的数据发送到我的php页面,该页面将查询数据库并返回html表,以便用请求的数据刷新主页 所有这些都将“实时”完成:当您完成表单中的字段时,所有数据都将刷新。因此,我将有一个AJAX请求和一个新的SQL请求,并将返回新的数据 问题:如何在php文件中忽略我的请求中的空白字段? 我的SQL请求代码(我知道如何执行AJAX+返回HTML): 带有输入字段的HTML:Php 使用SQL查询的Ajax忽略提交表单中的空白字段,php,jquery,sql,ajax,Php,Jquery,Sql,Ajax,我想使用AJAX将表单中的数据发送到我的php页面,该页面将查询数据库并返回html表,以便用请求的数据刷新主页 所有这些都将“实时”完成:当您完成表单中的字段时,所有数据都将刷新。因此,我将有一个AJAX请求和一个新的SQL请求,并将返回新的数据 问题:如何在php文件中忽略我的请求中的空白字段? 我的SQL请求代码(我知道如何执行AJAX+返回HTML): 带有输入字段的HTML: <div class="container"> <div class="ro
<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>
我是一个初学者,如果你认为我将要做的是一个坏主意,我愿意接受所有想法。有点老套的回答,但你可能会发现它很有帮助,我的想法是: 只需检查js中的空值,如果其中一个是空的,则将其替换为任何字符(%mysql中)的符号,然后将查询中的all=:替换为“like”
然后,查询将返回非空字段的所有结果,但如果某些字段为空,它将接受这些字段的任何值。您没有指定,但我假设所有字段都不是空的那么ajax和表单在哪里?//是的,但是……如果字段为空???”—那么,使用三元运算符?或者用
强制它们!empty()
?好的,如果我强制使用!empty(),用户有权让此字段为空。假设他只是想通过villeChargement搜索,而不是其他任何东西,那么我怎么能提出请求呢?如果你想让他们选择将其保留为空,那么再次。。。使用三元运算符。在JS或PHP中(这并不重要,因为数据是从一个向另一个发送的),如果字段为空,我应该使用三元运算符给出一个值,如果字段为满,则使用另一个值。好的,但是,在SQL请求中,我将如何使用并仅使用填充的字段发出请求?我应该做一个条件线的集合吗?你是对的。所有字段都不是空的,因为每个字段上的javascript事件都在更改中。所以,必须将一个字段从空改为某物才能触发事件。这是我在那篇文章中得到的最好的解决方案。非常感谢。但是,我将使用上面给出的链接解决方案。我只是不知道您可以使用“WHERE 1”进行sql查询,这意味着mysql的“一切都是真的”。再次感谢。
<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>
$(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);
}
});
})