Zobacz wyniki ankiety na temat zarobków programistów w Polsce. Czytaj więcej..
3

1

Hej.

Muszę obsłużyć dynamiczny formularz w pylons. Chciałbym tak jak w php otrzymac tablice w tablicy wraz z kluczem który bedzie identyfikował dane pole.

W php zrobił bym tak.

<input type="checkbox" name="field[124][]" value="1">
<input type="checkbox" name="field[124][]" value="2">

I w controlerze otrzymałbym

foreach($_POST as $key => $value){
if(is_array($value){
  foreach($value as $key2 => $value2){
  //$key to id pola, $value2 ->to wartość dla pola
   }
}
}

Przesyłając taki formularz w pylons, tworzy on jedną zmienną reques.POST['field[124][]'];

W jaki sposób mogę przechywcić w pylons w podobny sposób jak w PHP zadaną tablice?

flag

1 Answer

0

Najprostszy przypadek jaki mi do głowy przychodzi:

Formularz:

<form method="post" action="">
<input type="text" name="text" />
<input type="checkbox" name="field[124][]" value="1" />
<input type="checkbox" name="field[124][]" value="2" />
<input type="submit" value="Zapisz" />

Obsługa akcji w kontrolerze:

if request.method == 'POST':
    for item in request.params:
        try:
            value = request.params.getone(item)
        except KeyError:
            #list, for value in values: do something
            values = request.params.getall(item)
            for value in values:
                pass #item - field key, value - field value 


    return render('/index.html')

Ogólnie do formularzy polecam standardowo zintegrowany z pylonsami formencode lub o wiele prostszy i łatwiejszy do ogarnięcia wtforms

link|flag

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.