[RISOLTO]Inserimento variabile php in input html

Cristian83

Utente Attivo
16 Apr 2020
20
0
1
Buonasera scrivo in quanto sto avendo difficolta nell'inserimento della variabile php nell' input txt
incollo una parte di codice per rendere piu veloce il consulto....
HTML:
<input type="text" class="autcrt_inp_cf" name="CF" id="copycf" value="<?php echo......?>" disabled></td>
all'interno del value="" inserisco il tag php con la seguente variabile

PHP:
// OUTPUT
    echo "Codice fiscale: $parte[0] $parte[1] $parte[2] $parte[3] $parte[4] $parte[5] $parte[6]";
Il codice è implementato al calcolo del codice fiscale, il mio interesse è quello di visualizzare l'output nella riga html, avendo fatto un milione di tentativi non ci sono riuscito, qualcuno di voi potrebbe darmi una mano?
Grazie anticipatamente.
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.927
166
63
Lombardia
HTML:
<input type="text" class="autcrt_inp_cf" name="CF" id="copycf" value="<?php echo $parte[0].$parte[1].$parte[2].$parte[3].$parte[4].$parte[5].$parte[6]; ?>" disabled /></td>

RISULTATO

1587066076334.png
 
Ultima modifica:

macus_adi

Utente Attivo
5 Dic 2017
1.312
88
48
IT/SW
Se una banale stampa non funziona, qualcosa che hai implementato nn funzione come dovrebbe....

Crea un file di test e posta cosa contiene "parte"
PHP:
print_r($parte);
Sempre nel file di test prova ad aggiungere l'input....

Mi sorge un dubbio......
Sicuro che il server sia avviato ed in ascolto sulla porta corretta?
 

Cristian83

Utente Attivo
16 Apr 2020
20
0
1
ecco cosa contiene
PHP:
Array ( [0] => XXX [1] => XXX [2] => se [3] => A [4] => 40 [5] => [6] => U )
 

macus_adi

Utente Attivo
5 Dic 2017
1.312
88
48
IT/SW
SI ma tra quello che chiedi e quello che fai di mezzo ci sta l'oceano!!!!!!!!!
HTML:
<td> <input type="text" class="autcrt_inp_cf" name="CF" id="copycf" value="" disabled /></td>
Utilizza una var di sessione o di cookie per visualizzare il valore in "copycf"....

Riga 217 del tuo file:
PHP:
//COMMENTA QUESTO
//echo "Codice fiscale: $parte[0] $parte[1] $parte[2] $parte[3] $parte[4] $parte[5] $parte[6]";
setcookie('tempCF',$parte[0] $parte[1] $parte[2] $parte[3] $parte[4] $parte[5] $parte[6]);
All'inizio del tuo file
PHP:
<td> <input type="text" class="autcrt_inp_cf" name="CF" id="copycf" value="<?php echo $_COOKIE['tempCF']??''; ?>" disabled /></td>
 

marino51

Utente Attivo
28 Feb 2013
2.927
166
63
Lombardia
ma avendolo provato purtroppo non funziona
se a qualcuno interessa, questo é il codice che ho utilizzato per provare l'input
PHP:
<?php
$parte[0] = "ABC";
$parte[1] = "ZYX";
$parte[2] = "99";
$parte[3] = "U";
$parte[4] = "29";
$parte[5] = "A144";
$parte[6] = "K";
?>
<input type="text" class="autcrt_inp_cf" name="CF" id="copycf" value="<?php echo $parte[0].$parte[1].$parte[2].$parte[3].$parte[4].$parte[5].$parte[6]; ?>" disabled />
 

marino51

Utente Attivo
28 Feb 2013
2.927
166
63
Lombardia
ho visto il codice,
ed é la logica ad essere sbagliata,

nel form si inseriscono i dati anagrafici principali,
al submit, i dati vengono passati allo stesso script
che dovrebbe calcolare il codice fiscale e restituirlo nel campo atteso
tutto ciò non avviene perché come detto non vengono controllate le operazioni

il titolo é solo che furviante, il problema e totalmente diverso

questo il risultato dopo la submit, come si vede il campo che precede "copia codice" é vuoto perché lo script non lavora come dovrebbe o come vorrebbe chi lo propone

1587157720518.png
 
Ultima modifica:

macus_adi

Utente Attivo
5 Dic 2017
1.312
88
48
IT/SW
Per farlo funzionare, sbagliato che sia basta, aggiungi questo alla fine del file che hai allegato giusto prima della chiusura del body, non sarà bello ma funziona:
HTML:
<span id="hideAllcf" style="display: none">
   <?php echo join('',$parte); ?>
</span>

<script>
   function copyCnt(){
       let cnt=document.getElementById('hideAllcf');
       if(cnt.innerText!==''){
           document.getElementById('copycf').value=cnt.innerText;
       }
   }
    window.addEventListener("load", function(event) {
       copyCnt();
    });
</script>
 

macus_adi

Utente Attivo
5 Dic 2017
1.312
88
48
IT/SW
vorrei capire come funziona a te grazie
Semmai il contrario, mi chiedo come un copia incolla non funzioni....
Dopo doverosa precisazione di forma, ti allego il tuo file, ricorda di riabilitare mysql...

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<?php

$dbname = "cities";

$vocali=array("A","E","I","O","U");
$alfabetoMesi = array( 'A', 'B', 'C', 'D', 'E',
                       'H', 'L', 'M', 'P', 'R',
                       'S', 'T');

$alfabeto = 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');

// Caratteri posizione dispari
$PD['0'] = 1; $PD['B'] = 0; $PD['M'] = 18; $PD['X'] = 25;
$PD['1'] = 0; $PD['C'] = 5; $PD['N'] = 20; $PD['Y'] = 24;
$PD['2'] = 5; $PD['D'] = 7; $PD['O'] = 11; $PD['Z'] = 23;
$PD['3'] = 7; $PD['E'] = 9; $PD['P'] = 3;
$PD['4'] = 9; $PD['F'] = 13; $PD['Q'] = 6;
$PD['5'] = 13; $PD['G'] = 15; $PD['R'] = 8;
$PD['6'] = 15; $PD['H'] = 17; $PD['S'] = 12;
$PD['7'] = 17; $PD['I'] = 19; $PD['T'] = 14;
$PD['8'] = 19; $PD['J'] = 21; $PD['U'] = 16;
$PD['9'] = 21; $PD['K'] = 2; $PD['V'] = 10;
$PD['A'] = 1; $PD['L'] = 4; $PD['W'] = 22;

// Mesi
$mese[0] = "Gennaio";
$mese[1] = "Febbraio";
$mese[2] = "Marzo";
$mese[3] = "Aprile";
$mese[4] = "Maggio";
$mese[5] = "Giugno";
$mese[6] = "Luglio";
$mese[7] = "Agosto";
$mese[8] = "Settembre";
$mese[9] = "Ottobre";
$mese[10] = "Novembre";
$mese[11] = "Dicembre";

$gender[0] = "Maschile";
$gender[1] = "Femminile";

/*$link = mysqli_connect("localhost","root","","$dbname") or die("Error " . mysqli_error($link));
if (!$link)
   echo "Impossibile connettersi al server";


$query = "SELECT `city_name` FROM `cities` ORDER BY `city_name`";
$result = mysqli_query($link, $query);*/

?>
<head>
  <title></title>
</head>

<body>
Informazioni persona: <p>

//  qui devo inserire l'input per la visualizzazione del cf

<td> <input type="text" class="autcrt_inp_cf" name="CF" id="copycf" value="" disabled /></td>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<table>
<tr><td>Cognome:</td><td><input name="cognome"></td></tr>
<tr><td>Nome:</td><td><input name="nome"></td></tr>
<tr><td>Data di nascita</td>
<td>
<select name="DDN_Giorno">
<option> - Giorno - </option>
<?php for($i = 1; $i <= 31; $i++) echo "<option value='$i'>$i</option>"; ?>
</select>
<select name="DDN_Mese">
   <option> - Mese - </option>
   <?php foreach($mese as $m) echo "<option value='$m'>$m</option>" ?>
</select>
<select name="DDN_Anno">
<option> - Anno - </option>
<?php for($i = 1900; $i <= 2013; $i++) echo "<option value='$i'>$i</option>"; ?>
</select></td>
<tr>
<td>Sesso:</td>
<td><select name="Sesso">
<?php foreach($gender as $g) echo "<option value='$g'>$g</option>" ?>
</select>
</td>
<tr>
<td>Comune di nascita:</td>
<td><select name="Comune">
<?php
   /*while ($row = mysqli_fetch_row($result)) {
   echo "<option value='" . $row[0] . "'>" . $row[0] . "</option>";
        }
   mysqli_free_result($result);*/
?>
      <option value="Gioia Tauro">Gioia Tauro</option>
</select></td>
</tr>
<tr> <td><input type="submit"><input type="reset"></td>
</tr>
</table>
</form>

<?php if($_POST)  {


$cognome = $_POST['cognome'];
$nome = $_POST['nome'];
$DG = $_POST['DDN_Giorno'];
$DM = $_POST['DDN_Mese'];
$DA = $_POST['DDN_Anno'];
$gender = $_POST['Sesso'];
$comune= $_POST['Comune'];
// Il codice fiscale � formato da 7 parti
$parte[0] = "";
$parte[1] = "";
$parte[2] = "";
$parte[3] = "";
$parte[4] = "";
$parte[5] = "";
$parte[6] = "";
// CODICE PER IL COGNOME (consonanti n�1-2-3 + eventuali vocali)
$cognome = strtoupper($cognome);
$nvocali = preg_match_all('/[AEIOU]/i',$cognome,$matches1);
$nconsonanti = preg_match_all('/[BCDFGHJKLMNPQRSTVWZXYZ]/i',$cognome,$matches2);
if($nconsonanti>=3)  $parte[0] = $matches2[0][0] . $matches2[0][1] . $matches2[0][2];
else
{

      for($i = 0; $i < $nconsonanti; $i++)
      {
            $parte[0] = $parte[0] . $matches2[0][$i];
      }
      $n = 3-strlen($parte[0]);
      for($i = 0; $i < $n; $i++)
      {
            $parte[0] = $parte[0] . $matches1[0][$i];
      }
      $n = 3-strlen($parte[0]);
      for($i = 0; $i < $n; $i++)  $parte[0] = $parte[0] . "X";
}

// CODICE PER IL NOME (consonanti n�1-3-4, oppure 1-2-3 se sono 3; se sono meno di 3: vocali)
$nome = strtoupper($nome);
$nvocali = preg_match_all('/[AEIOU]/i',$nome,$matches1);
$nconsonanti = preg_match_all('/[BCDFGHJKLMNPQRSTVWZXYZ]/i',$nome,$matches2);
if($nconsonanti>=4) $parte[1] = $matches2[0][0] . $matches2[0][2] . $matches2[0][3];
else if($nconsonanti==3)  $parte[1] = $matches2[0][0] . $matches2[0][1] . $matches2[0][2];
else
{
      for($i = 0; $i < $nconsonanti; $i++)
      {
            $parte[1] = $parte[1] . $matches2[0][$i];
      }
      $n = 3-strlen($parte[1]);
      for($i = 0; $i < $n; $i++)
      {
            $parte[1] = $parte[1] . $matches1[0][$i];
      }
      $n = 3-strlen($parte[1]);
      for($i = 0; $i < $n; $i++)  $parte[1] = $parte[1] . "X";
}

// CODICE ANNO (Ultime 2 cifre dell'anno)
$arrAnno = str_split($DA);
$parte[2] = $arrAnno[2] . $arrAnno[3];

// CODICE MESE (A = Gennaio, B = Febbraio, ecc.)
$m = array_search($DM, $mese);
$parte[3] = $alfabetoMesi[$m];

// CODICE GIORNO (se uomo; n. giorno (DD); altrimenti n. giorno + 40)
if($gender == "Maschile") $parte[4] = $DG;
else $parte[4] = $DG +40;
if(strlen($parte[4]) == 1) $parte[4] = "0" . $parte[4];

// CODICE COMUNE
/*$query = "SELECT city_code_land FROM cities WHERE city_name = \"$comune\"";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result))
{
       $parte[5] = $row[0];
}
mysqli_free_result($result);*/
$part[5]='041y';
// CODICE DI CONTROLLO ((caratteri posiz pari + posiz dispari) / 26 -> Carattere di controllo)
$arrCOD = $parte[0] . $parte[1] . $parte[2] . $parte[3] . $parte[4] . $parte[5];
$arrCOD = str_split($arrCOD);
$index = count($arrCOD);
/* posizione pari */
$somma1 = 0;
for($i = 0; $i < 15; $i++)
   if(($i+1)%2==0)
        {
              if(!in_array($arrCOD[$i], $alfabeto)) $somma1 += $arrCOD[$i];
              else
              {
                   $n = array_search($arrCOD[$i], $alfabeto);
                   $somma1 += $n;
              }
       }
/* posizione dispari */
$somma2 = 0;
for($i = 0; $i < 15; $i++)
   if(($i+1)%2!=0)
        {
           $somma2 += $PD["$arrCOD[$i]"];
        }
$somma = $somma1+$somma2;
$parte[6] = ($somma % 26);
$parte[6] = $alfabeto[$parte[6]];
// OUTPUT
//echo "Codice fiscale: $parte[0] $parte[1] $parte[2] $parte[3] $parte[4] $parte[5] $parte[6]";

//mysqli_close($link);
} ?>
<span id="hideAllcf" style="display: none">
   <?php echo join('',$parte); ?>
</span>

<script>
   function copyCnt(){
       let cnt=document.getElementById('hideAllcf');
       if(cnt.innerText!==''){
           document.getElementById('copycf').value=cnt.innerText;
       }
   }
    window.addEventListener("load", function(event) {
       copyCnt();
    });
</script>

</body>

</html>
In allegato img...
_Snap_sabato 18 aprile 2020_09h27m18s_001_.png

Naturalmente i dati sono stati inviati in post, in modo dubbio e senza alcuno controllo come dice @marino51 , detto questo sarebbe opportuno scrivere codice riutilizzabile ed utilizzare i Services per le response...
 

Cristian83

Utente Attivo
16 Apr 2020
20
0
1
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<?php

$dbname = "cities";

$vocali=array("A","E","I","O","U");
$alfabetoMesi = array( 'A', 'B', 'C', 'D', 'E',
                       'H', 'L', 'M', 'P', 'R',
                       'S', 'T');

$alfabeto = 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');

// Caratteri posizione dispari
$PD['0'] = 1; $PD['B'] = 0; $PD['M'] = 18; $PD['X'] = 25;
$PD['1'] = 0; $PD['C'] = 5; $PD['N'] = 20; $PD['Y'] = 24;
$PD['2'] = 5; $PD['D'] = 7; $PD['O'] = 11; $PD['Z'] = 23;
$PD['3'] = 7; $PD['E'] = 9; $PD['P'] = 3;
$PD['4'] = 9; $PD['F'] = 13; $PD['Q'] = 6;
$PD['5'] = 13; $PD['G'] = 15; $PD['R'] = 8;
$PD['6'] = 15; $PD['H'] = 17; $PD['S'] = 12;
$PD['7'] = 17; $PD['I'] = 19; $PD['T'] = 14;
$PD['8'] = 19; $PD['J'] = 21; $PD['U'] = 16;
$PD['9'] = 21; $PD['K'] = 2; $PD['V'] = 10;
$PD['A'] = 1; $PD['L'] = 4; $PD['W'] = 22;

// Mesi
$mese[0] = "Gennaio";
$mese[1] = "Febbraio";
$mese[2] = "Marzo";
$mese[3] = "Aprile";
$mese[4] = "Maggio";
$mese[5] = "Giugno";
$mese[6] = "Luglio";
$mese[7] = "Agosto";
$mese[8] = "Settembre";
$mese[9] = "Ottobre";
$mese[10] = "Novembre";
$mese[11] = "Dicembre";

$gender[0] = "Maschile";
$gender[1] = "Femminile";

 $link = mysqli_connect("localhost","ND","ND","ND") or die("Error " . mysqli_error($link));
    if (!$link)
       echo "Impossibile connettersi al server";

$query = "SELECT `city_name` FROM `cities` ORDER BY `city_name`";
$result = mysqli_query($link, $query);

?>
<head>
  <title></title>
</head>

<body>
Informazioni persona: <p>
//qui devo inserire l'input per la visualizzazione del cf

<td> <input type="text" class="autcrt_inp_cf" name="CF" id="copycf" value="" disabled /></td>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<table>
<tr><td>Cognome:</td><td><input name="cognome"></td></tr>
<tr><td>Nome:</td><td><input name="nome"></td></tr>
<tr><td>Data di nascita</td>
<td>
<select name="DDN_Giorno">
<option> - Giorno - </option>
<?php for($i = 1; $i <= 31; $i++) echo "<option value='$i'>$i</option>"; ?>
</select>
<select name="DDN_Mese">
    <option> - Mese - </option>
    <?php foreach($mese as $m) echo "<option value='$m'>$m</option>" ?>
</select>
<select name="DDN_Anno">
<option> - Anno - </option>
<?php for($i = 1900; $i <= 2013; $i++) echo "<option value='$i'>$i</option>"; ?>
</select></td>
<tr>
<td>Sesso:</td>
<td><select name="Sesso">
<?php foreach($gender as $g) echo "<option value='$g'>$g</option>" ?>
</select>
</td>
<tr>
<td>Comune di nascita:</td>
<td><select name="Comune">
<?php
    while ($row = mysqli_fetch_row($result)) {
    echo "<option value='" . $row[0] . "'>" . $row[0] . "</option>";
        }
    mysqli_free_result($result);
 ?>
</select></td>
</tr>
<tr> <td><input type="submit"><input type="reset"></td>
</tr>
</table>
</form>

<?php if($_POST)  {


$cognome = $_POST['cognome'];
$nome = $_POST['nome'];
$DG = $_POST['DDN_Giorno'];
$DM = $_POST['DDN_Mese'];
$DA = $_POST['DDN_Anno'];
$gender = $_POST['Sesso'];
$comune= $_POST['Comune'];
// Il codice fiscale è formato da 7 parti
$parte[0] = "";
$parte[1] = "";
$parte[2] = "";
$parte[3] = "";
$parte[4] = "";
$parte[5] = "";
$parte[6] = "";
// CODICE PER IL COGNOME (consonanti n°1-2-3 + eventuali vocali)
$cognome = strtoupper($cognome);
$nvocali = preg_match_all('/[AEIOU]/i',$cognome,$matches1);
$nconsonanti = preg_match_all('/[BCDFGHJKLMNPQRSTVWZXYZ]/i',$cognome,$matches2);
if($nconsonanti>=3)  $parte[0] = $matches2[0][0] . $matches2[0][1] . $matches2[0][2];
else
{
 
      for($i = 0; $i < $nconsonanti; $i++)
      {
            $parte[0] = $parte[0] . $matches2[0][$i];
      }
      $n = 3-strlen($parte[0]);
      for($i = 0; $i < $n; $i++)
      {
            $parte[0] = $parte[0] . $matches1[0][$i];
      }
      $n = 3-strlen($parte[0]);
      for($i = 0; $i < $n; $i++)  $parte[0] = $parte[0] . "X";
}

// CODICE PER IL NOME (consonanti n°1-3-4, oppure 1-2-3 se sono 3; se sono meno di 3: vocali)
$nome = strtoupper($nome);
$nvocali = preg_match_all('/[AEIOU]/i',$nome,$matches1);
$nconsonanti = preg_match_all('/[BCDFGHJKLMNPQRSTVWZXYZ]/i',$nome,$matches2);
if($nconsonanti>=4) $parte[1] = $matches2[0][0] . $matches2[0][2] . $matches2[0][3];
else if($nconsonanti==3)  $parte[1] = $matches2[0][0] . $matches2[0][1] . $matches2[0][2];
else
{
      for($i = 0; $i < $nconsonanti; $i++)
      {
            $parte[1] = $parte[1] . $matches2[0][$i];
      }
      $n = 3-strlen($parte[1]);
      for($i = 0; $i < $n; $i++)
      {
            $parte[1] = $parte[1] . $matches1[0][$i];
      }
      $n = 3-strlen($parte[1]);
      for($i = 0; $i < $n; $i++)  $parte[1] = $parte[1] . "X";
}

// CODICE ANNO (Ultime 2 cifre dell'anno)
$arrAnno = str_split($DA);
$parte[2] = $arrAnno[2] . $arrAnno[3];

// CODICE MESE (A = Gennaio, B = Febbraio, ecc.)
$m = array_search($DM, $mese);
$parte[3] = $alfabetoMesi[$m];

// CODICE GIORNO (se uomo; n. giorno (DD); altrimenti n. giorno + 40)
if($gender == "Maschile") $parte[4] = $DG;
else $parte[4] = $DG +40;
if(strlen($parte[4]) == 1) $parte[4] = "0" . $parte[4];

// CODICE COMUNE
$query = "SELECT city_code_land FROM cities WHERE city_name = \"$comune\"";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result))
{
       $parte[5] = $row[0];
}
mysqli_free_result($result);

// CODICE DI CONTROLLO ((caratteri posiz pari + posiz dispari) / 26 -> Carattere di controllo)
$arrCOD = $parte[0] . $parte[1] . $parte[2] . $parte[3] . $parte[4] . $parte[5];
$arrCOD = str_split($arrCOD);
$index = count($arrCOD);
/* posizione pari */
$somma1 = 0;
for($i = 0; $i < 15; $i++)
    if(($i+1)%2==0)
        {
              if(!in_array($arrCOD[$i], $alfabeto)) $somma1 += $arrCOD[$i];
              else
              {
                   $n = array_search($arrCOD[$i], $alfabeto);
                   $somma1 += $n;
              }
       }
/* posizione dispari */
$somma2 = 0;
for($i = 0; $i < 15; $i++)
    if(($i+1)%2!=0)
        {
             $somma2 += $PD["$arrCOD[$i]"];
        }
$somma = $somma1+$somma2;
$parte[6] = ($somma % 26);
$parte[6] = $alfabeto[$parte[6]];
// OUTPUT
echo "Codice fiscale: $parte[0] $parte[1] $parte[2] $parte[3] $parte[4] $parte[5] $parte[6]";

mysqli_close($link);
} ?>


<span id="hideAllcf" style="display: none">
   <?php echo join('',$parte); ?>
</span>

<script>
   function copyCnt(){
       let cnt=document.getElementById('hideAllcf');
       if(cnt.innerText!==''){
           document.getElementById('copycf').value=cnt.innerText;
       }
   }
    window.addEventListener("load", function(event) {
       copyCnt();
    });
</script>
</body>
</html>
 

macus_adi

Utente Attivo
5 Dic 2017
1.312
88
48
IT/SW
Altra nota......
_Snap_sabato 18 aprile 2020_09h48m42s_003_.png


Ripeto.... Neanche un copia incolla......
_Snap_sabato 18 aprile 2020_09h49m35s_004_.png


Credevo si capisse:
aggiungi questo alla fine del file che hai allegato giusto prima della chiusura del body
Controlla le differenze tra il file generale che ti ho mandato io (copia del tuo) e quello che hai messo sul server....