Symfony2, bekommt den Wert des Eingabefeldes mit Zweig
Ich möchte den Wert von einem input Feld aus meiner Vorlage Zweig mit Zweig, nicht mit javascript.
Mein input Feld hat keine form, es ist ein versteckter Eingang.
{% block body -%}
<input type="hidden" name="id_client" id="id_client" value="123"/>
...
{% endblock %}
Ich dies tun möchten:
{{ path('client_view',{"id": value_Of_Hidden_Input}) }}
Wie bekomme ich value_Of_Hidden_Input
EDIT:
Meine Forderung:
Ich habe eine Liste von Kunden, und ich habe für jeden Kunden eine Taste zur Anzeige der details des Kunden "Modifier coordonnées"
.
Ich möchte auf geklickt ein Kunde eine Funktion AJAX ausführen der Aktion showAction
Das ist mein code:
{% block body -%}
<div class="tab-client">
<table id="mytable" class="table table-bordred table-striped" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>Raison Sociale</th>
<th>Identifiant</th>
<th>M. de passe</th>
<th>Solde actuel</th>
<th class="text-center sty-td-action">Action</th>
</tr>
</thead>
<tbody>
{% for entity in entities %}
<tr>
<td>{{ entity.raisonSociale}} </td>
<td>{{ entity.login }}</td>
<td>{{ entity.password }}</td>
<td>{{ entity.soldeSMS }}</td>
<td>
<a class="modifier-client" id="modif_coordonnee"><span class="glyphicon glyphicon1">Modifier coordonnées</span></a>
<a href="#historique" class="modifier-client"><span class="glyphicon glyphicon2">Voir Historique</span></a>
<a href="#ajout" class="modifier-client"><span class="glyphicon glyphicon3">Ajout transaction</span></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div><!--tab-client-->
{% endblock %}
{% block javascripts %}
<script>
$("#modif_coordonnee").click(function() {
$.ajax({
//On lui indique le type d'envoie des informations
type: 'POST',
//On lui indique le chemin de la fonction
url: '{{ path('client_show',{"id": value_of_id_client}) }}',
//On lui donne la valeur du choix qu'on a fait, et id est la variable qui va contenir notre valeur, nous la retrouvons dans notre controller
//Enfin nous lui disons de remplir notre formulaire avec le resultat
success: function(response)
{
......
}
}
)});
</script>
{% endblock %}
Mein problem ist, wie kann bestimmt value_of_id_client
?
- Wo ist der
input
-Bereich und vor allem seinevalue
conning aus? Ist es ein Formular-Zeile, wie{{ form_row(form.id_client) }}
? - Nein, ich habe nicht ein Formular. Wenn ich klickte auf einen button, wird der Wert von meinem verborgenen Eingang änderungen, um den Wert von meinem client cliqued mit javascript
- Können Sie erklären, mehr detailliert, was Sie zu erreichen versuchen genau?
- Ich Editiere meinen post zu explaine die original problème
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen .
Mehr Informationen auf http://symfony.com/doc/current/reference/forms/twig_reference.html
POST
Daten, Sie können nicht übergeben, Javascript Variablen durch Zweig wie Zweig ist bereits erbracht durch die Zeit, die Sie brauchen, zu tun.Zunächst: Ein
id
muss eindeutig im gesamten Dokument. Wenn Sie mehrere Ziele haben, verwenden Sie dieclass
-Attribut statt. Ich habe auch die aktuelleurl
einschließlich der entsprechendenid
auf jede Entität in Ihrer Schleife, mithilfe des HTML5 -data
- Attribut:In der JavaScript-Teil, müssen Sie ändern Sie den Selektor und rufen Sie die url des aktuell angeklickten element:
<input>
-element in Ihrem ausführlichen code-Beispiel. Also diese Lösung funktioniert ohne einen zusätzlichen<input>
-element./path/to/route/{id}
. Es könnte am Ende so etwas wie/object/{id}/edit
.'{{ path('client_show') }}/' + id'
, aber ich flehe dich an, versuchen Sie auch die FOSJsRoutingBundle IdeeMüssen Sie FOSJsRoutingBundle zu generieren richtige Symfony Pfad, der in ein argument und legt Sie in der richtigen Teil der URL (abhängig von den Routen, die Ihren Variablen Anteil, der möglicherweise irgendwo in der Mitte der URI!)
Müssen Sie alle Installations-Anleitung für das bundle, und stellen Sie sicher, dass Sie aussetzen der Strecke in Frage.
Dann ziehst du den Wert in die
Routing.generate
Funktion durch die übergabe der abgerufene Wert von jQuery:php app/console assets:install --symlink web
? Sind Sie laden dierouter.js
mit<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
? Wenn Sie mit der entsprechenden Methode verwenden, müssen Sie@FOSJsRoutingBundle/Resources/public/js/router.js
und nicht@FOSJsRoutingBundle/Resources/js/router.js
options: expose: true
annotation? Verwenden!) Vergessen Sie nichtphp app/console cache:clear --env=prod
Können Sie nicht tun, die Art und Weise, versuchen, (js):
Ich denke, die richtige Art und Weise zu handhaben, ist in der controller.
Beim buchen der form nehmen, die verborgenen Wert und Spritzen es in Ihre Vorlage.
Ziehen id_client aus dem Request-Objekt.
Dann in Ihre Vorlage, die Sie verwenden können, die client_id variable.