Come estrarre codice da tabella html?

JackIlPazzo

Utente Attivo
25 Lug 2014
69
0
6
Ciao a tutti

ho realizzato un codice che tramite la pressione di un tasto si può generare una tabella html da codice php:

Codice:
function crea_tabella($colonne,$suddivisione,$righe)
	{
		$dipendenti = 0;
		$progressivo = 0;
		echo "<table border='1' width='50%' height='25%'>";

			echo "<tr>";
				echo "<td></td>";
				echo "<td>Lunedì</td>";
				echo "<td>Martedì</td>";
				echo "<td>Mercoledì</td>";
				echo "<td>Giovedì</td>";
				echo "<td>Venerdì</td>";
				echo "<td>Sabato</td>";
			echo "</tr>";

			for($i=0; $i<$righe; $i++)
			{
				echo "<tr>";
				echo "<td ><input name='casella $progressivo' type='text' value='Operaio $i' disabled='true'></td>";
				$progressivo++;
				for($j=0; $j<$colonne;$j++)
				{
					if($suddivisione == 1)
					{	
						echo "<td><input type='text name='dipendente''></td>";
					}
					elseif($suddivisione == 2)
					{	 
						echo "<td>AM<input type='text' name='dipendente'><br>";
						echo "		 PM<input type='text name='dipdenente''></td>";
					}
				}
				echo "</tr>";
			}
			echo "</table><br>";
	}
Vorrei fare in modo che tramite la relativa pressione di un altro pulsante sia catturato il contenuto delle seguenti celle generate:

celle da prelevare.JPG

come posso fare questo?
 

marino51

Utente Attivo
28 Feb 2013
2.931
166
63
Lombardia
per estrarre intendi recuperare i valori vero ?

se ho capito, mi sono permesso delle leggere modifiche al fine di rendere più facile la scrittura del codice che "lavorerà" i dati della tabella, verifica il risultato con "crea_tabella(1)" poi sostituendo il parametro 1 con 2, verifica il nuovo risultato fammi sapere se ti convince

se non ho capito, butta tutto nel cestino

PHP:
<?php

if (empty($_POST['submit'])) crea_tabella(1);
else { $tabella = show_var($_POST); echo $tabella; }

function crea_tabella($suddivisione=1,$colonne=6,$righe=5)
{
	$dipendenti = 0;
	$progressivo = 1;

	echo "<form name='myform' method='POST'>";
	echo "<table border='1' width='50%' height='25%'>";

	echo "<tr>";
	echo "<td> </td>";
	echo "<td>Lunedì</td>";
	echo "<td>Martedì</td>";
	echo "<td>Mercoledì</td>";
	echo "<td>Giovedì</td>";
	echo "<td>Venerdì</td>";
	echo "<td>Sabato</td>";
	echo "</tr>";

	for($i=0; $i<$righe; $i++)
	{
		echo "<tr>";
		echo "<td ><input name='casella[$i]' type='text' value='Operaio $progressivo' disabled='true' /></td>";

		$progressivo++;
		for($j=0; $j<$colonne;$j++)
		{
			if($suddivisione == 1)
			{	
				echo "<td><input type='text' name='dipendente[$i][]' value='0'></td>";
			}
			elseif($suddivisione == 2)
			{	 
				echo "<td>AM<input type='text' name='dipendenteAM[$i][]' value='0'><br>";
				echo "    PM<input type='text' name='dipdenentePM[$i][]' value='0'></td>";
			}
		}
		echo "</tr>";
	}
	echo "</table><br>";

	echo "<input type='hidden' name='colonne'      value='$colonne' />";
	echo "<input type='hidden' name='suddivisione' value='$suddivisione' />";
	echo "<input type='hidden' name='righe'        value='$righe' />";

	echo "<input type='submit' name='submit' value='SUBMIT' />";

	echo "</form>";
}

function show_var($x)
{
  $tabella = '<table border=1><tr> <th>variable</th> <th>value</th> </tr>'; 
  foreach( $x as $key => $value)
  {
    if (!is_object($value) and $key !== '_SERVER')
    {
      if (is_array ($value))
      { 
        $tabella.='<tr><td>$'.$key.'</td><td>'; 
        if ( sizeof($value)>0 )
        {
          $tabella.= show_var($value);
        } 
        else
        { 
          $tabella.='EMPTY'; 
        } 
        $tabella.='</td></tr>'; 
      }
      else
      { 
        $tabella.='<tr><td>$'.$key.'</td><td>'.$value.'</td></tr>'; 
      }
    } 
  } 
  $tabella.= '</table>'; 
  return $tabella;
}
?>
 

JackIlPazzo

Utente Attivo
25 Lug 2014
69
0
6
Ciao grazie per la soluzione.
Potresti spiegarmi la funzione show_var? Intendo i vari passaggi, grazie ancora per l'aiuto!
 

marino51

Utente Attivo
28 Feb 2013
2.931
166
63
Lombardia
la funzione show_var permette di vedere il contenuto di un'array entrando anche nelle array in essa contenute
nel nostro caso, chiamata con "show_var($_POST)" permette di vedere quello che ritorna il form

dovresti eseguire lo script con "crea_tabella(1)" e poi sostituendo 1 con il valore 2 (suddivisione)

eseguendo lo script, vedi ciò che restituisce il form,
ovvero, suddivisione, colonne, righe e poi in alternativa dipendente o dipendenteAM/dipendentePM
 

marino51

Utente Attivo
28 Feb 2013
2.931
166
63
Lombardia
se vuoi vedere meglio cosa tornano i campi, puoi inserire un valore meglio definito rispetto allo zero, sostituendo
PHP:
if($suddivisione == 1)
{
  echo "<td><input type='text' name='dipendente[$i][]' value='$i'></td>";
}
elseif($suddivisione == 2)
{ 
  echo "<td>AM<input type='text' name='dipendenteAM[$i][]' value='AM$i'><br />";
  echo "    PM<input type='text' name='dipendentePM[$i][]' value='PM$i'></td>";
}
poi modificando la parte sotto riportata, vedi i valori recuperati dopo il submit

PHP:
<?php

if (empty($_POST['submit'])) { 
  // visualizzo la pagina
  crea_tabella(2);
}
else { 
  // leggo i contenuti della pagina dopo submit
  echo show_var($_POST); echo "<br />";

  $suddivisione=$_POST['suddivisione'];
  $righe       =$_POST['righe'];
  $colonne     =$_POST['colonne'];

  if($suddivisione == 1) { 
    $dipendente=$_POST['dipendente'];
    echo show_var($dipendente); echo "<br />";
  }
  else { 
    $dipendenteAM=$_POST['dipendenteAM']; 
    $dipendentePM=$_POST['dipendentePM'];
    echo show_var($dipendenteAM); echo "<br />";
    echo show_var($dipendentePM); echo "<br />";
  }
}

function crea_tabella($suddivisione=1,$righe=5,$colonne=6)