2013-03-01 14 views
15

Ich habe eine HTML-Seite mit einer Schaltfläche, und ich muss ein Python-Skript ausführen, wenn wir auf die Schaltfläche klicken und mit dem Ergebnis zur gleichen HTML-Seite zurückkehren.Führen Sie ein Python-Skript auf Schaltfläche klicken

Also muss ich einige Validierung auf Rückgabewert und einige Maßnahmen durchführen.

Hier ist mein Code:

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") 
} 

Was meine Python-Code tut, ist einige Validierung auf der in der eingegebene Name Textfeld und gibt den Rückgabestatus.

Aber ich brauche das Ergebnis wieder auf der gleichen Seite, damit ich die Formularübergabe später mit allen Details machen kann. Jede Hilfe wird

+0

Python auf Server-Seite läuft, so dass die nächst Sie erhalten können, ist zu AJAX dem Wert auf dem Server und senden Sie das validierte Ergebnis senden. – Passerby

+1

verwandt: [Wie verbindet man Javascript zu Python, das Daten mit dem JSON-Format auf beide Weisen teilt?] (Http://stackoverflow.com/questions/11747527/how-to-connect-javascript-to-python-sharing-data-with -json-format-in-both-ways) – jfs

Antwort

17

geschätzt werden können Sie Ajax verwenden, das ist einfacher, mit jQuery

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

und Sie sollten the jQuery.ajax page lesen, da es zu viele Optionen hat.

+1

In meinem Fall, dieser Code lädt Python-Skript-Datei von der Datei URL –

12

Erstellen Sie eine Seite (oder einen Dienst) in Python, die Post- oder Get-Requests akzeptieren und die Informationen verarbeiten und eine Antwort zurückgeben kann. Es ist besser, wenn die Antwort im JSON-Format vorliegt. Dann können Sie diesen Code verwenden, um beim Klicken auf die Schaltfläche einen Anruf zu tätigen.

<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> 

Ich hoffe, das hilft

+1

Vielen Dank .. es funktionierte wirklich für mich – user2058205

+0

Glücklich zu helfen. Wenn es Ihnen nichts ausmacht, markieren Sie bitte die Antwort als akzeptiert, wenn es geholfen hat. – Hari

+0

@Hari Darf ich fragen, was die $ ('# id') tut? ist die #id, die hier als Platzhalter verwendet wird, um durch etwas wie "home" ersetzt zu werden (im Falle der Frage von OP)? Wenn ja, bin ich immer noch nicht sicher, was $ macht –

Verwandte Themen