Как обработать две формы в одном представлении?

вызовите следующий метод из вашего SQLiteHandlerHelper в методе setOnItemSelectedListener ()

rollNumSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if (position != -1) {

                 String jsonResp = db.testData( rollNumArr[position]);                    
                // get this json response and extract name & address then set to respective edittext 
            }
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {            
        }
    });

, затем в метод добавления SQLiteHandlerHelper

public String testData(String rollNum) {

    String res;
    String selectQuery = "SELECT * FROM tablename where rollNumColumnName = '" +rollNum+ "' ";

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {

            String name = cursor.getString(nameColumnIndex);
            String address = cursor.getString(addressColumnIndex);

            res = "{\"isAvail\":true, \"name\":"+name+", \"address\":"+address+"}";

        } while (cursor.moveToNext());
    } else {
        res = "{\"isAvail\":false}";
    }
    cursor.close();
    db.close();

    return res;
}
5
задан Paco 8 September 2013 в 16:11
поделиться

3 ответа

Лично, я использовал бы одно представление для обработки POST каждой формы.

С другой стороны, Вы могли использовать скрытый входной элемент, которые указывают, какая форма использовалась

<form action="/blog/" method="POST">
    {{ blog_form.as_p }}
    <input type="hidden" name="form-type" value"blog-form" /> <!-- set type -->
    <input type="submit" value="Submit" />
</form>

... 

<form action="/blog/" method="POST">
    {{ micro_form.as_p }}
    <input type="hidden" name="form-type" value"micro-form" /> <!-- set type -->
    <input type="submit" value="Submit" />
</form>

С целью как:

def blog(request):
    if request.method == 'POST':
        if request.POST['form-type'] == u"blog-form":   # test the form type
            form = BlogForm(request.POST) 
            ...
        else:
            form = MicroForm(request.POST)
            ...

    return render_to_response('blog.html', {
        'blog_form': BlogForm(),
        'micro_form': MicroForm(),
    })

... но еще раз, я думаю одно представление на форму (даже если представление только принимает ДОЛЖНОСТИ), более просто, чем попытка сделать вышеупомянутое.

5
ответ дан 14 December 2019 в 01:19
поделиться

Если две формы будут полностью отличаться, то, конечно, не повредит сделать их, обрабатываются двумя различными взглядами. Иначе можно использовать 'скрытый входной элемент', обманывают zacherates, затронул на. Или, Вы могли всегда давать каждому submit элемент, который уникальное имя, и дифференцирует в представлении, какая форма была отправлена на основе этого.

0
ответ дан 14 December 2019 в 01:19
поделиться

как сказанный ayaz, необходимо дать уникальное имя для формирования кнопки отправки

<form action="." method="post">
......
<input type="submit" name="form1">
</form>


<form action="." method="post">
......
<input type="submit" name="form2">
</form>


#view

if "form1" in request.POST:
    ...
if "form2" in request.POST:
    ...
4
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: