我有一个ajax请求,它可以返回一行或多行,这取决于用户在选项中选择的内容,然后显示4个字段,与他选择的相关。
如果有两行或更多行,它可以正常工作,但只有一行时它根本不起作用。不显示4个字段。
我认为这是因为我的获取。
但我不知道如何解决问题
我希望你能帮助我。 :)
我的php请求:
public function getContactByClient($id2, $id){
$req = "select contact.nom, prenom, email, telephone from produit
inner join clientproduit on clientproduit.idClient = produit.id
inner join client on client.id = clientproduit.idClient
inner join contact on contact.id = client.idContact
where clientproduit.idClient = '$id2' AND clientproduit.idProduit = '$id'";
$res = PdoGR::$monPdo->query($req);
$laLigne = $res->fetch();
return $laLigne;
}
我的ajax请求:
$('body').on('change', '#nomClient', function(){
//on recupere la valeur de l'attribut value pour afficher tel ou tel resultat
var req2=$('#referenceProduit').val();
var req=$('#nomClient').val();
//requête ajax, appel du fichier function.php
$.ajax({
type: "GET",
url: "include/php.php?nomClient="+req+"&referenceProduit="+req2,
dataType : "html",
//affichage de l'erreur en cas de problème
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest + '--' + textStatus + '--' + errorThrown);
},
//function s'il n'y a pas de probleme
success:function(data){
//On affiche la réponse du serveur
$('.client').empty();
$('.client').prepend(data);
$('input[name=nom]').val($('input:hidden[name=nom]').val());
$('input[name=prenom]').val($('input:hidden[name=prenom]').val());
$('input[name=telephone]').val($('input:hidden[name=telephone]').val());
$('input[name=email]').val($('input:hidden[name=email]').val());
console.log(data)
}
});
});
我的function.php
if(isset($_GET['nomClient'])){
$id = $_GET["referenceProduit"];
$id2 = $_GET["nomClient"];
$res = $pdo->getContactByClient($id2, $id);
foreach ($res as $key => $value) {
echo '<input type="hidden" name="'.$key.'" value="'.$value.'"/>';
}
echo '
<div class="form-group">
<label for="nomContact" class="col-sm-1 control-label">Nom</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="nom" id="nom" readonly>
</div>
<label for="prenomContact" class="col-sm-1 control-label">Prénom</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="prenom" id="prenom" readonly>
</div>
</div>
<div class="form-group">
<label for="emailContact" class="col-sm-1 control-label">Email</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="email" id="email" readonly>
</div>
<label for="telephoneContact" class="col-sm-1 control-label">Téléphone</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="telephone" id="telephone" readonly>
</div>
</div>
</div>
';
}