2016-10-21 3 views
0
<script> 
    // Roti6p20tk 
    $(function() { 
     $("#distributedPacketForRoti6p20tk, #bonusForRoti6p20tk, " + 
      "#replaceForRoti6p20tk, #returnForRoti6p20tk").on("keydown keyup", sumForRoti6p20tk); 
     function sumForRoti6p20tk() { 
      $("#totalSalePacketForRoti6p20tk").val(Number($("#distributedPacketForRoti6p20tk").val()) 
       - Number($("#bonusForRoti6p20tk").val()) - 
       Number($("#replaceForRoti6p20tk").val()) - Number($("#returnForRoti6p20tk").val()) 
      ); 

      $("#salesInAmountForRoti6p20tk").val(Number($("#totalSalePacketForRoti6p20tk").val()) * 20 
      ); 
     } 
    }); 

    // Roti4p14tk 
    $(function() { 
     $("#distributedPacketForRoti4p14tk, #bonusForRoti4p14tk, " + 
      "#replaceForRoti4p14tk, #returnForRoti4p14tk").on("keydown keyup", sumForRoti4p14tk); 
     function sumForRoti4p14tk() { 
      $("#totalSalePacketForRoti4p14tk").val(Number($("#distributedPacketForRoti4p14tk").val()) 
       - Number($("#bonusForRoti4p14tk").val()) - 
       Number($("#replaceForRoti4p14tk").val()) 
       - Number($("#returnForRoti4p14tk").val()) 
      ); 

      $("#salesInAmountForRoti4p14tk").val(Number($("#totalSalePacketForRoti4p14tk").val()) * 14 
      ); 
     } 
    }); 

    // final sum For Roti 
    $(function() { 
     $("#extSaleForRoti6p20tk, #extSalesForRoti4p14tk, " + 
      " #dueReceivedForRoti, #dueInAmountForRoti, " + 
      "#expAndComForRoti").on("keydown keyup", finalsumForRoti); 
     function finalsumForRoti() { 
      $("#totalSaleAmountForRoti").val(Number($("#extSaleForRoti6p20tk").val()) 
       + Number($("#extSalesForRoti4p14tk").val()) + 
       Number($("#salesInAmountForRoti6p20tk").val()) 
       + Number($("#salesInAmountForRoti4p14tk").val()) 
      ); 

      $("#totalReceivedForRoti").val(Number($("#totalSaleAmountForRoti").val()) 
       + Number($("#dueReceivedForRoti").val()) 
       - Number($("#dueInAmountForRoti").val()) 
       - Number($("#expAndComForRoti").val()) 
      ); 
     } 
    }); 

</script> 

Voici le code htmlVous voulez réutiliser la fonction jQuery faisant fonction d'utiliser encore et encore

This is my HTML code With Jquery function

Je veux réutiliser ces fonctions jquery. Je veux juste envoyer le paramètre alors cette fonction fera le même travail pour tous.

Ces fonctions ci-dessus feront la même chose que j'envoie un paramètre. Comment réutiliser la fonction jquery sans copier le coller encore et encore? Pouvez-vous me montrer le chemin ou un tutoriel?

Je souhaite réutiliser le code. J'en ai besoin plus que cinq fois. mais je dois copier le coller et changer l'id ou la variable mais je veux faire une fonction qui peut faire la même chose. Je dois juste envoyer le paramètre à chaque fois. :)

+0

Javascript s'exécute sur le client, PHP s'exécute sur le serveur: deux mondes distincts. Donc non, vous ne pouvez pas * utiliser * une méthode JavaScript dans une classe PHP. – trincot

+0

@trincot Je pense qu'il veut dire que PHP crée la page, et il veut utiliser une classe PHP pour générer les différentes fonctions Javascript basées sur les paramètres. – Barmar

+0

Pourrait être, @Barmar, mais en relisant la dernière phrase de la question je ne peux m'empêcher de penser que l'OP s'attend à ce qu'une méthode JavaScript soit * réutilisée * par PHP. – trincot

Répondre

2

Vous pouvez écrire une fonction Javascript qui prend la liste des ID comme argument.

function sumForFields(totalid, salesid, inputids, salesmultiplier) { 
    $(inputids.join(',')).on("keydown keyup", function() { 
     var total = Number($(inputids[0]).val()); 
     for (var i = 1; i < inputids.length; i++) { 
      total -= Number($(inputids[i]).val()); 
     } 
     $(totalid).val(total); 
     $(salesid).val(total * salesmultiplier); 
    }); 
} 

, on peut écrire:

sumForFields('#totalSalePacketForRoti6p20tk', '#salesInAmountForRoti6p20tk', 
      ['#distributedPacketForRoti6p20tk', '#bonusForRoti6p20tk', '#replaceForRoti6p20tk', '#returnForRoti6p20tk'], 
      20); 

Ceci est pour les deux premières fonctions. Le dernier a une structure différente, puisqu'il mélange l'addition et la soustraction quand il combine les champs, non seulement en soustrayant tout comme les deux premiers.

+0

upvote - mais j'aimerais que l'OP partage son HTML actuel car l'utilisation d'IDs peut ne pas être nécessaire en fonction de la façon dont les objets sont imbriqués. – cmorrissey

+0

http://ideone.com/YNv8Uk – Shaon

+0

Au-dessus est le lien de code source complet – Shaon