2017-10-19 4 views
2

Je souhaite que ma position s'affiche sous forme de chaîne. Quelqu'un peut-il me donner une idée sur la façon de faire cela? Im juste nouveau pour laravel et javascript. enter image description hereConvertir JSON en chaîne JAVASCRIPT

public function myformAjax(Request $request) 
{ 

    $position =Tbl_press_release_recipient::select('position')->where('country',Request::input('country'))->distinct()->get(); 
    return json_encode($position); 
} 

mon ajax:

$(document).ready(function() { 
     $('#country').on('change', function() { 
      var country = this.value; 
      if(country){ 
       $.ajax({ 
        url: '/member/page/press_release_email/choose_recipient_press_release/ajax', 
        type: "GET", 
        data:{country:country}, 
        dataType: "json", 
        success:function(data) { 


         $('select[name="position"]').empty(); 
         $.each(data, function(key, value) { 
          $('select[name="position"]').append('<option value="'+ JSON.stringify(key) +'">'+ JSON.stringify(value) +'</option>'); 

         }); 

        } 
       }); 
      }else{ 
       alert("as23d"); 
      } 
     }); 
    }); 

Répondre

1

Vous stringifying l'objet de valeur alors que vous devez accéder à la propriété de position de l'objet de valeur:

$('select[name="position"]').append(
    $('<option>', { value : value.position, text : value.position }) 
); 

Cela crée aussi un Option élément d'objet pour définir le texte et la valeur, au lieu de concaténer le code HTML qui pourrait conduire à des vulnérabilités XSS.

0

Si en réponse ajax vous JSON comme {clé: valeur}, vérifier:

..., 
success: function(repsonse) { 
    $.each(repsonse, function(i, elem) { 
     $('select[name="position"]').append('<option value="'+ i +'">'+ elem +'</option>'); 
    }); 
} 

jsFiddle: https://jsfiddle.net/tomol1111/7sw53q45/