[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:
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:
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?
 
ecco cosa contiene
PHP:
Array ( [0] => XXX [1] => XXX [2] => se [3] => A [4] => 40 [5] => [6] => U )
 
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>
 
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 />
 
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:
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>
 
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...
 
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>
 
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....
 

Discussioni simili