php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.01.2012, 11:24  
archer42
Gast
 
Beiträge: n/a
Standard Mehrere Einträge bearbeiten.

Hallo Community,

ich stehe vor folgendem Problem:
Ich habe eine Tabelle, bei der ich mehrere Einträge per Checkbox auswählen und dann zusammen bearbeiten "kann".

Hier ist der Controller (Symfony2).
Die ausgewählten Einträge kommen an und werden auch erfolgreich von Doctrine gefetched. Leider werden die gefetchten Daten nicht in das Formular injiziert.

Eventuell deswegen:
Zitat:
The CSRF token is invalid. Please try to resubmit the form
PHP-Code:
    public function editAction(Request $request) {
        
$ids $request->request->get('ids'); // holt die ausgewählten ids der Einträge aus der Tabelle
        
$em $this->getDoctrine()->getEntityManager();

        
$customers = array();

         foreach (
$ids as $id) {
            
$customers[] = $em->getRepository('AcmeAppBundle:Customer')->find($id); // fetched für jede id die Daten und speichert diese im array
        
}

        
var_dump($customers); // test ob daten abgefragt werden: positiv

        
foreach ($customers as $customer) {
            
$form $this->createForm(new CustomerType(), $customer); // erzeugt neues Formular und bestückt dieses mit den Daten aus dem zu bearbeitenden Eintrag: FEHLER

            
if ($request->getMethod() === 'POST') {
                
$form->bindRequest($request);

                if (
$form->isValid()) {
                    
$em $this->getDoctrine()->getEntityManager();
                    
$em->persist($customer);
                    
$em->flush();

                     return 
$this->redirect($this->generateUrl('_customers_edit'));
                }
            }

            return 
$this->render('AcmeAppBundle:Customer:edit.html.twig', array(
                
'form' => $form->createView(),
            ));

        } 
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.01.2012, 11:43  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Hi,

Zitat:
if you do {{ form_field(form) }} it will output everything needed (errors,
hiddens, labels, and fields)
But if you access each filed like:

{{ fom_field(form.somePropertyName) }}
{{ form_error(form.somePropertyName) }}

etc...

then you must explicity render the hidden fields.
(Quelle: http://groups.google.com/group/symfo...dbfdbf4230221c)

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 31.01.2012, 11:55  
archer42
Gast
 
Beiträge: n/a
Standard

Hi,

Ich render das Formular als gesamtes, wenn ich form_hidden extra angebe bekomme ich eine Fehlermeldung..

Ich vermute mal, dass Symfony denkt, dass ein Bot die Sachen einzutragen versucht und deswegen irgendwas blockiert, anderseits wäre dies komisch, da ja Symfony in der Dokumentation explizit angibt, dass man so die Felder bestücken kann.

Hier meine templates:
Code:
{% block article %}
{% form_theme form 'AcmeAppBundle:Default:form.html.twig' %}
<form action="{{ path('_customers_edit') }}" method="post" {{ form_enctype(form) }}>
    <table>
        {{ form_widget(form) }}
    </table>
    <input type="submit" value="Änderungen Speichern" />
</form>
{% endblock %}
Code:
{% block field_row %}
<tr class="form_row">
    <td>{{ form_label(form) }}</td>
    <td>{{ form_widget(form) }}</td>
</tr>
{% endblock field_row %}
  Mit Zitat antworten
Alt 31.01.2012, 12:09  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Hi,

ich sehe nicht, dass Du Hidden Fields z.B. mit renderHiddenFields() renderst (oder überlese ich was?!)!?

Zitat:
Ich vermute mal, dass Symfony denkt, dass ein Bot die Sachen einzutragen versucht und deswegen irgendwas blockiert, anderseits wäre dies komisch, da ja Symfony in der Dokumentation explizit angibt, dass man so die Felder bestücken kann.
...das denke ich nicht

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 31.01.2012, 12:39  
archer42
Gast
 
Beiträge: n/a
Standard

Zitat:
ich sehe nicht, dass Du Hidden Fields z.B. mit renderHiddenFields() renderst (oder überlese ich was?!)!?
Nein, da überliest du nichts, zumindest nicht direkt
Code:
{% block article %}
{% form_theme form 'AcmeAppBundle:Default:form.html.twig' %}
<form action="{{ path('_customers_edit') }}" method="post" {{ form_enctype(form) }}>
    <table>
        {{ form_widget(form) }}
        {{ form_rest(form) }}
    </table>
    
    <input type="submit" value="Änderungen Speichern" />
</form>
{% endblock %}
In der Dokumentation steht:
Zitat:
form_rest(form) - Renders any fields that have not yet been rendered. It's usually a good idea to place a call to this helper at the bottom of each form (in case you forgot to output a field or don't want to bother manually rendering hidden fields). This helper is also useful for taking advantage of the automatic CSRF Protection.
Es muss also irgendwas anderes sein, das Formular benutze ich ja auch für das Hinzufügen, da geht alles.
Nur, wenn ich jetzt die Felder bestücken will. Das macht er nicht

Kann es den sein, dass das Format von gefechten Objekt aus dem Repository ein anderes ist, als das Formular verarbeiten kann?
  Mit Zitat antworten
Alt 31.01.2012, 16:10  
archer42
Gast
 
Beiträge: n/a
Standard

Kein Wunder das es nicht klappt...

Der Controller kriegt ja erstmal die POST Daten vom Pre-Controller zu geschickt...
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einträge vergleichen SteiniKeule Datenbanken 2 19.12.2011 00:31
Gruppenmitglieder zählen choice Datenbanken 2 07.12.2010 19:58
[Erledigt] array in eine Schleife bearbeiten samij PHP Tipps 2010 4 03.04.2010 00:58
Datenbanken bearbeiten und Updaten Zerdux PHP Tipps 2010 3 13.02.2010 14:22
[Erledigt] Durch einen DB Eintrag alle anderen Einträge bearbeiten Rutor PHP Tipps 2010 8 08.02.2010 13:25
[GELÖST] MySQL Einträge per PHP sortieren Pastafari PHP Tipps 2009 3 25.09.2009 10:19
[Erledigt] 50 Einträge und dann weiter klicken und wieder 50 Einträge stallone PHP Tipps 2009 7 18.04.2009 20:31
Anzahl der Einträge einer MySQL-Tabelle Datenbanken 8 19.06.2006 19:14
Tabelle färben bei Bearbeiten PHP Tipps 2006 3 13.02.2006 09:25
beim bearbeiten werden keine neue Daten übernommen... PHP Tipps 2005-2 2 24.10.2005 12:25
doppelte einträge löschen! Datenbanken 3 09.08.2005 14:38
nur neue Einträge laden, alte sollen bleiben PHP Tipps 2005 10 21.02.2005 22:38
Nur 123 Einträge passen in eine DB Tabelle?? Dueperthal PHP Tipps 2004-2 4 28.11.2004 20:32
Hielfe: WIE neue DB Einträge zählen& farbig markieren??? Datenbanken 2 20.07.2004 12:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mehrere einträge ändern in php, \datensatz editieren\ doctrine codeigniter, eintrag bearbeiten symfony2, mehrere datensätze ändern php, the csrf token is invalid. please try to resubmit the form, \$this->createform(new\ \the csrf token is invalid\

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum