2016-09-13 3 views
0

완벽하게 작동하지만 한 번만 실행되는 선택 옵션이 있는데 요청이 다시 실행되지 않습니다.Ajax 요청은 한 번만 작동합니다.

나는 그것이 'onchange'이벤트 때문이라고 생각합니다.

이 내 아약스 코드 :

jQuery(document).ready(function($) { 
$('#referenceProduit').change(function(){ 
    //on recupere la valeur de l'attribut value pour afficher tel ou tel resultat 
    var req=$('#referenceProduit').val(); 
    //requête ajax, appel du fichier function.php 
    $.ajax({ 
     type: "POST", 
     url: "include/php.php", 
     data: "referenceProduit="+req, 
     dataType : "json", 
     //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 
      $('.produit').empty(); 
      $('.produit').prepend(data.produit); 
      $('input[name="designation"]').val(data.resDisplayForm.designation); 
      $('input[name="prix"]').val(data.resDisplayForm.prix); 
     } 
    }); 
}); 
}); 

HTML 코드 :

<div class="form-group"> 
    <label for="referenceProduit" class="col-sm-1 control-label">Reference</label> 
    <div class="col-sm-2"> 
    <select class="form-control" name="referenceProduit" id="referenceProduit"> 
     <option selected="selected" disabled="disabled">Choisir</option> 
     <?php foreach($lesProduits as $unProduit){?> 
     <option name="<?php echo $unProduit['id'];?>" value="<?php echo $unProduit['id'];?>"><?php echo $unProduit['reference']?></option> 
     <?php } ?> 
    </select> 
    </div> 
</div> 
<div class="form-group"> 
    <div class="produit"></div> 
</div><br/><br/> 
+2

'#produit' 요소는'.produit' 요소 안에 있습니까? (이 경우 성공 함수에 의해 삭제되고 다시 생성되며 이후에는'change' 핸들러가 없습니다.) – nnnnnn

+0

오류가 기록 되었습니까? – passion

+0

.produit은 결과가 나타나는 div이며 #reference는 내 선택의 이름을 제공하므로 내부에있을 수 있습니다. (편집 됨) –

답변

1

당신은

.on(eventType, selector, function) 

예에 매핑해야

,
$('#parentElement').on('change', '#referenceProduit', function) 
+0

문제가 여기에없는 것 같아요, 모든 옵션은 이미로드되었습니다. – passion

관련 문제