2011-11-02 5 views
0

AJAX로 여러 필드를 보내는 방법을 알아 내려고하고 있습니다. GET 또는 POST를 사용합니까?AJAX로 여러 필드 보내기

저는 파이썬 서버 페이지를 사용하고 있습니다. 선택 필드에서 어떤 옵션을 선택했는지에 따라 필드를 업데이트하고 싶습니다. 지금까지 작동하도록 알고있는 한, XMLHttpRequest를 통해 여러 개별 데이터를 보내는 방법에 대해 궁금합니다.

fname = c.execute("""SELECT fname from employees WHERE user = %s;""", (uname)) 

lname = c.execute("""SELECT lname from employees WHERE user = %s;""", (uname)) 

email = c.execute("""SELECT email from employees WHERE user = %s;""", (uname)) 

deptid = c.execute("""SELECT dept_id from employees WHERE user = %s;""", (uname)) 

active = c.execute("""SELECT active from employees WHERE user = %s;""", (uname)) 

sentient = c.execute("""SELECT sentient from employees WHERE user = %s;""", (uname)) 

나는 이들 데이터를 모두 가지고 있고, 내 다른 페이지로 그들을 돌려 보낼 것이다. 어떻게하면 비동기 적으로 업데이트됩니까?

참고,이 서버에서 클라이언트 페이지로 보내려고합니다. 나는. 사용자가 클라이언트 페이지 (여기에 표시되지 않고 POST 또는 GET을 통해 전송 됨)의 선택 상자에서 다른 사용자 이름을 선택하면 이러한 모든 필드가 기본 페이지로 다시 전송되어 사용자에게 표시됩니다.

+0

선생님, 당신이하려고하는 것은 "SQL 주입"이라고하며 오랜 시간 동안 요술을 잊어 버렸을 것입니다. – Lachezar

+0

@ 루초, 나는 그가 게시 한 코드가 클라이언트 측이 아니라 서버 측에 있다고 생각한다. 그리고 그는 클라이언트에게이 필드를 보내야한다. 완전히 명확하지 않다고 생각했다. –

+0

예, 고객에게 보내야합니다. –

답변

1

파이썬에 익숙하지 않지만 JSON으로 데이터를 직렬화하여 클라이언트에게 반환하는 방법이 있습니다. 클라이언트 측에

{"fname" : "Bob", "lname" : "Johnson", "email" : "[email protected]" ... } 

, 당신은 다음과 같은 데이터를 통과 할 수있을 것입니다 다른 모든 자바 스크립트 객체 :

var fname = response.fname; // etc 
+0

Beautiful! 감사. –

1

내가 있으리라 믿고있어 당신은 요청을 처리 할 수있는 몇 가지 방법이 클라이언트, 등? 클라이언트와 서버 사이의 프로토콜을 결정해야합니다. JavaScript는 매우 쉽게 구문 분석 할 수 있기 때문에 JSON은 매우 편리합니다.

그래서, 파이썬에서 개체를 직렬화 (http://docs.python.org/library/json.html 참조)

import json 
print json.dumps({ "fname": fname, "lname": lname }) # etc. 

은 다음 페이지를 요청; 예를 들어 jQuery로 :

$.getJSON("url/to/page", function(data) { 
    // do something 
}