Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Problema]Funzione jeavascript e php

    Salve a tutti... Partu subito spiegando il mio problema xD.
    Praticamente io ho una funzione in javascript che mi deve ritornare un valore...
    E questo valore lo vorrei salvare in una variabile in php qualkuno sa dirmi come posso fare per cortesia??
    Posto qui la mia funzione in javascript:
    codice:
    <script language="Javascript">
    
    // --------------------------------------------------
    function CalcoloCodFis(Cognome, Nome, DataNascita, Sesso, CodiceComune) {
    
    	Cognome = Cognome.toUpperCase()
    	Nome = Nome.toUpperCase()
    
    	ggmmaa = DataNascita.split("/")
    
    	Sesso = Sesso.toUpperCase()
    	CodiceComune = CodiceComune.toUpperCase()
    
    //	qui costruisco il codice
    	TxtCodFis = ""
        
    //	RICAVO IL COGNOME (1-3)
    	Vocali = ""
    	Consonanti = ""
    	for(var i=0; i<Cognome.length; i++) {
    		a = Cognome.charAt(i)
    		if (/[AEIOU]/.test(a)) Vocali += a
    		if (/[BCDFGHJKLMNPQRSTVWXYZ]/.test(a)) Consonanti += a
    	}
    	Consonanti = (Consonanti+Vocali+"XXX").substr(0,3)
    	TxtCodFis = Consonanti
        
    //	RICAVO IL NOME (4-6)
    	Vocali = ""
    	Consonanti = ""
    	for(var i=0; i<Nome.length; i++) {
    		a = Nome.charAt(i)
    		if (/[AEIOU]/.test(a)) Vocali += a
    		if (/[BCDFGHJKLMNPQRSTVWXYZ]/.test(a)) Consonanti += a
    	}
    	if (Consonanti.length>3) {
    //	isolo la prima, terza e quarta consonante
    		Consonanti = Consonanti.charAt(0)+Consonanti.substr(2,2)
    	} else {
    		Consonanti = (Consonanti+Vocali+"XXX").substr(0,3)
    	}
    	TxtCodFis += Consonanti
        
    //	Anno di nascita (7-8)
    	aa = String(10000+parseFloat(ggmmaa[2])).substr(3)
    	TxtCodFis += aa
        
    //	Mese di nascita (9)
    	TxtCodFis += (" ABCDEHLMPRST").charAt(ggmmaa[1])
        
    //	Giorno di nascita e sesso (10-11)
    	Sesso = (Sesso=="F")?140:100;
    	gg = String(parseFloat(ggmmaa[0]) + Sesso).substr(1)
    	TxtCodFis += gg
        
    //	Codice Località di nascita (12-15)
    	TxtCodFis += CodiceComune
        
    //	Codice di Controllo: Ultima lettera (16)
    	TxtCodFis += getCtrlChar(TxtCodFis)
    
    //	finito!
    	return (TxtCodFis)
    
    }
    
    // --------------------------------------------------
    function getCtrlChar(cfp) { // questa non l'ho fatta io
    	var sump = 0; 
    	var sumd = 0; 
    	var car = new Array(1,0,5,7,9,13,15,17,19,21,2,4,18,20,11,3,6,8,12,14,16,10,22,25,24,23); 
    	for (var j=1;j<=13;j+=2) sump += cfp.charCodeAt(j) 
    	sump-=404; 
    	for (j=0;j<=4;j+=2) sumd += car[cfp.charCodeAt(j)-65]; 
    	sumd += car[cfp.charCodeAt(6)-48] + car[cfp.charCodeAt(8)-65] + 
    		car[cfp.charCodeAt(10)-48] + car[cfp.charCodeAt(12)-48] + 
    		car[cfp.charCodeAt(14)-48]; 
    	return (String.fromCharCode((sump+sumd)%26+65)); 
    }
    
    // --------------------------------------------------
    </script>
    Il parametro che dovrei passare si trova nella funzione "CalcoloCodFis" Grazie in anticipo =)

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    -.-

    Javascript non può passare niente a PHP, PHP è un linguaggio lato server, Javascript è lato client.

  3. #3
    Ok benissimo... allora io ho rifato lo stesso codice con il php (sarebbe un codice per calcolare il codice fiscale se qualkuno ankora nn l'ha kapito)...
    Ma ho un paio di anomalie qualkuno sa dirmi dove sbaglio?
    codice:
    <?php
    function calcolocodicefiscale($cognome,$nome,$anno,$mese,$giorno,$sesso,$codcomune){
      $e=null;
      $f=null;
      $codice=null;
      $pre=null;
      $pre2=null;
      
    
    $consonanti=array("B","C","D","F","G","H","J","K","L","M","N","P","Q","R","S","T","V","W","X","Y","Z");
    $vocali=array("A","E","I","O","U");
    $mesi=array(1=>"A","B","C","D","E","H","L","M","P","R","S","T");
    $lettere=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    $dispari=array("0"=>1,"1"=>0,"2"=>5,"3"=>7,"4"=>9,"5"=>13,"6"=>15,"7"=>17,"8"=>18,"9"=>21,"A"=>1,"B"=>0,"C"=>5,"D"=>7,"E"=>9,"F"=>13,"G"=>15,"H"=>17,"I"=>19,"J"=>21,"K"=>2,"L"=>4,"M"=>18,"N"=>20,"O"=>11,"P"=>3,"Q"=>6,"R"=>8,"S"=>12,"T"=>14,"U"=>16,"V"=>10,"W"=>22,"X"=>25,"Y"=>24,"Z"=>23);
    $pari=array("0"=>0,"1"=>1,"2"=>2,"3"=>3,"4"=>4,"5"=>5,"6"=>6,"7"=>7,"8"=>8,"9"=>9,"A"=>0,"B"=>1,"C"=>2,"D"=>3,"E"=>4,"F"=>5,"G"=>6,"H"=>7,"I"=>8,"J"=>9,"K"=>10,"L"=>11,"M"=>12,"N"=>13,"O"=>14,"P"=>15,"Q"=>16,"R"=>17,"S"=>18,"T"=>19,"U"=>20,"V"=>21,"W"=>22,"X"=>23,"Y"=>24,"Z"=>25);
    
    // Prime 3 consonanti del cognome
    for($i=0;$i<strlen($cognome);$i++){
     if(in_array($cognome[$i],$consonanti) && $e<3):
      $codice=$codice.$cognome[$i];
      $e++;
     endif;
     }
     if(strlen($codice)<3){
      for($i=0;$i<strlen($cognome);$i++){
       if(in_array($cognome[$i],$vocali) && $e<3):
        $codice=$codice.$cognome[$i];
        $e++;
       endif;
      }
     }
    // Prime 3 consonanti del nome
    for($i=0;$i<strlen($nome);$i++){
     if(in_array($nome[$i],$consonanti) && $f<3){
      $codice=$codice.$nome[$i];
      $f++;
     }
    }
    if(strlen($codice)<6){
      for($i=0;$i<strlen($nome);$i++){
       if(in_array($nome[$i],$vocali) && $f<2):
        $codice=$codice.$nome[$i];
        $f++;
       endif;
      }
     }
    
    // Ultime 2 cifre dell'anno di nascita
    $codice=$codice.$anno[2].$anno[3];
    
    // Mese di nascita
    $codice=$codice.$mesi[$mese];
    
    // Giorno di nascita. Per le femmine 40 giorni in più.
    if($sesso=="M"){
            $codice=$codice.$giorno;
    }else if($sesso=="F"){
            $codice=$codice.$giorno+40;
    }
    
    // Codice del comune di nascita
    $codice=$codice.$codcomune;
    
    // Codice di controllo. Per i pari $pari e per i dispari $dispari
    for($i=0;$i<strlen($codice);$i++){
     if($i%2==0){
             $pre=$pre.$pari[$codice[$i]];
      }
     if($i%2==1){
             $pre=$pre.$dispari[$codice[$i]];
     }
    }
    
    // Somma i valori del codice di controllo
    for($i=0;$i<strlen($pre);$i++){
      $pre2=$pre2+$pre[$i];
    }
    
    // Al resto della divisione del codice corrisponde una lettera
    $codice=$codice.$lettere[($pre2%26)];
    
    // Visualizza il codice fiscale
    return $codice;
    }
    
    ?>

  4. #4
    Originariamente inviato da Maruko92
    Ma ho un paio di anomalie qualkuno sa dirmi dove sbaglio?
    Se magari ci dici quali sono queste anomalie...o dobbiamo scoprirle da soli?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Lol si hai ragione xD
    Praticamente l'ultima lettera di controllo non va bene e le tre lettere del nome nemmeno...

  6. #6
    Ad un'occhiata veloce non è che qui ci va 3 invece di 2?

    Codice PHP:
    ...
       if(
    in_array($nome[$i],$vocali) && $f<2):
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    No quello va bene ma non mi funziona tipo quando uno ha un nome con più di 3 consonanti...
    Tanto per farti un esempio: se metti che un si chiama Filippo dovrebbe dare FPP invece a me mi da FLP...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.