2013-03-01 29 views
15

Mam stronę HTML z jednym przyciskiem, i muszę wykonać skrypt Pythona po kliknięciu przycisku i powrócić do tej samej strony HTML z wynikiem.Wykonaj skrypt Pythona na przycisku kliknij

Potrzebuję więc zatwierdzenia wartości zwracanej i wykonania pewnych czynności.

Oto mój kod:

HTML:

<input type="text" name="name" id="name"> 
<button type="button" id="home" onclick="validate()" value="checkvalue"></button> 

JS:

function validate(){ 
    if (returnvalue=="test") alert(test) 
    else alert ("unsuccessful") 
} 

Co mój kod Python robi to część walidacji na nazwy zarejestrowanej w pole tekstowe i podaje status powrotu.

Ale potrzebuję wyniku z powrotem na tej samej stronie, więc mogę później przesłać formularz ze wszystkimi szczegółami. Każda pomoc będzie mile widziane

+0

Python działa po stronie serwera, więc najbliżej można dostać się do AJAX wysłać wartość do serwera i wrócić zatwierdzone wynik. – Passerby

+1

związanych: [Jak podłączyć JavaScript do Pythona udostępnianie danych w formacie JSON w obie strony?] (Http://stackoverflow.com/questions/11747527/how-to-connect-javascript-to-python-sharing-data-with -json-format-in-both-ways) – jfs

Odpowiedz

17

Można użyć Ajax, który jest łatwiej z jQuery

$.ajax({ 
    url: "/path/to/your/script", 
    success: function(response) { 
    // here you do whatever you want with the response variable 
    } 
}); 

i powinieneś czytać the jQuery.ajax page ponieważ ma zbyt wiele opcji.

+1

W moim przypadku ten kod pobiera plik skryptu Pythona z adresu URL pliku –

12

Utwórz stronę (lub usługę) w pythonie, która może przyjąć wiadomość lub otrzymać żądanie i przetworzyć informacje i zwrócić odpowiedź. Lepiej jest, jeśli odpowiedź jest w formacie json. Następnie możesz użyć tego kodu, aby wykonać połączenie po kliknięciu przycisku.

<input type="text" name="name" id="name"> 
<button type="button" id="home" onclick="validate()" value="checkvalue"> 
<script> 
$('#id').click(function(){ 

$.ajax({ 
     type:'get', 
     url:<YOUR SERVERSIDE PAGE URL>, 
     cache:false, 
     data:<if any arguments>, 
     async:asynchronous, 
     dataType:json, //if you want json 
     success: function(data) { 
     <put your custom validation here using the response from data structure > 
     }, 
     error: function(request, status, error) { 
     <put your custom code here to handle the call failure> 
     } 
    }); 
}); 
</script> 

Mam nadzieję, że to pomoże

+1

Dziękuję bardzo ... to mi bardzo pomogło – user2058205

+0

Chętnie pomogę. Jeśli nie masz nic przeciwko, zaznacz odpowiedź jako zaakceptowaną, jeśli pomogła. – Hari

+0

@ Hari Czy mogę zapytać, co robi $ ("# id")? to "#id" użyte tutaj jako symbol zastępczy dla nas zastąpić czymś takim jak "dom" (w przypadku pytania OP)? Jeśli tak, nadal nie jestem pewien, co $ robi –

Powiązane problemy