2017-09-07 2 views
0

Ich arbeite mit Symfony 2.8, und ich habe 3 wählt Liste.getRepository mit Javascript Symfony

Contoller

$em=$this->getDoctrine()->getManager(); 
$categories = $em->getRepository('CentralBundle:Categorie')->findAll(); 
$sousCategories = $em->getRepository('CentralBundle:SousCategorie')->findAll(); 

return $this->render('product.html.twig',array('categories'=>$categories, 
                     'sousCategories' => $sousCategories)); 

TWIG

<ul class="nav nav-pills nav-stacked category-menu"> 
<select id="select-cat" class="form-control" name="carlist"> 
    {% for cat in categories %} 
    <option value="{{cat.id}}">{{cat.nom}}<option> 
    {% endfor %} 
    </select> 
</ul> 

<ul class="nav nav-pills nav-stacked category-menu"> 
<select id="select-sc" class="form-control" name="carlist"> 
    {% for sc in sousCategories %} 
    <option value="{{sc.id}}">{{sc.nom}}<option> 
    {% endfor %} 
    </select> 
</ul> 

für die 3. Liste auswählen sollte: die Optionen der 1. und 2. werden aus dem Repository in der Steuerung wie folgt aufgerufen in Funktion mit der 1. und 2. Auswahlliste aufgerufen werden: Es sollte das Produkt wwith "categorie" und "sousCatogries" angezeigt werden, die im ersten Schritt ausgewählt wurden. Deshalb denke ich, dass ist, sollte aber das Problem mit Javascript tun ist, wie kann ich in Javascript getRepository die Liste des Produkts zu erhalten entspricht, oder ob es eine andere Lösung zu tun, dass

Dank für all

Antwort

0

Sie kann man erkennen, auf 2 Arten tun

aJAX

Zuerst in ajax, hören nur select1 und select2 Änderungen rufen Sie dann eine neue Aktion, die Ihre Datenbank mit select1 und select2 Werte abfragen, wird dann das Ergebnis im JSON-Format zurück

$('.select1').change(function() { 
    populateSelect3(); 
}); 
$('.select2').change(function() { 
    populateSelect3(); 
}); 

function populateSelect3() { 
    $.ajax({ 
     url : 'myurl', 
     type: 'post', 
     data : {'select1': $('.select1').val(), 'select2': $('.select2').val() }, 
     success: function(data) { 
      // populate your select3 
     } 
     ... 
    ); 
} 

Der SYMFONIC Weg

Symfony Formular Komponente bieten eine Möglichkeit, dynamisch Ihre Form durch Ereignisse zu aktualisieren, finden Sie hier Symfony Form Events

Sie ein benutzerdefiniertes Formular erstellen müssen ...

+0

Vielen Dank, ich werde versuchen, das zu tun, und ich werde –

+0

überprüfen Für die Symfony-Formularereignisse ist event-> getData() immer NULL, und für das JavaScript-Problem ist das Problem, wie Sie den Abfrage-Generator übergeben! –