web-dev-qa-db-fra.com

Exécuter un script python lors du clic sur le bouton

J'ai une page HTML avec un bouton, et je dois exécuter un script python lorsque nous cliquons sur le bouton et revenons à la même page HTML avec le résultat.

J'ai donc besoin de faire une validation sur la valeur de retour et d'effectuer une action.

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

Ce que mon code python fait est une certaine validation sur le nom entré dans la zone de texte et donne le statut de retour.

Mais j'ai besoin du résultat sur la même page, donc je peux faire la soumission du formulaire plus tard avec tous les détails. toute aide serait appréciée

15
user2058205

Vous pouvez utiliser Ajax, ce qui est plus facile avec jQuery

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

et vous devriez lire la page jQuery.ajax car il a trop d'options.

15
martriay

Créez une page (ou un service) en python, qui peut accepter une publication ou une demande, traiter les informations et renvoyer une réponse. Il vaut mieux que la réponse soit au format json. Ensuite, vous pouvez utiliser ce code pour effectuer un appel sur le bouton cliquer.

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

J'espère que ça aide

12
Hari