- Home
- Categorie
- Coding e Sistemistica
- PHP
- modulo dinamico in base a selezione
-
forse ho usato troppe parole
-
Ti dico teoricamente come lo farei io
Se credi possa andare vediamo di svilupparlo
Allura, prima di tutto ti servirà un form costruito in maniera "dinamica". Ovvero senza campi prefissi, non in numero ovviamente.
In un primo script imposterai quanti documenti caricare ($i)
nel secondo script (quello del form) prendi il valore e tramite un ciclo ti crei, dentro il form, $i coppie di campi s/n e p/n a cui abbinerai: name=serial_number$i
name=part_number$i
ed un hidden data con value=$i
nel terzo script ti memorizzerai dentro degli array tutti i dati, tramite un ciclo:
$pn*=$_POST['part_number$i']
$sn*=$_POST['serial_number$i']Fatto questo ti cicli l'array e ti inserisci le righe
Ovviamente ho scritto tutto in maniera sintatticamente sbagliata, era solo per dare un'idea di quel che si dovrebbe fare
-
si potrebbe andare anzi deve andare se no sto messo male:)
vediamo se ho capito
questo è il form di selezione :
[html]
<form name="form3" method="post" action="">
<label>N°
<select name="N°" id="N°">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</label>
</form>
[/html]
da qui posso selezionare il numero di righe mettendo nell'action la stessa pagina dove ho il codice del secondo form ?poi ho il form relativo agli item:
[HTML]
<form method="POST" name="form1" id="form1">
<table width="42%" border="0" align="center">
<tr>
<td height="18" class="headerTableGray"><div align="center"> Part Number
<input type="text" name="Part Number" id="Part Number">
</div></td>
<td class="headerTableGray"><label>
<div align="center">Serial Number
<input type="text" name="Serial Number" id="Serial Number">
</div>
</label></td>
</tr>
</table>
<p> </p>
<p align="center">
<label>
<input type="submit" name="button" id="button" value="Invia">
</label>
</p>
</form>
[/HTML]
poi mi sono perso.....:)
come faccio a fare un ciclo in html per riperere questo form tante volte quanto vale il valore passato dal primo form..?
-
@jackfolla said:
[html]
<form name="form3" method="post" action=".......">
<label>N°
<select name="N°" id="N°">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</label>
</form>
[/html]
da qui posso selezionare il numero di righe mettendo nell'action la stessa pagina dove ho il codice del secondo form ?
uhm.....o metti un tasto submit o utilizzi javascript per fare un OnSelect->submit, vedi tu per questo come lo vuoi impostare. Comunque si, devi mettere nell'action il nome della pagina che contiene il secondo script@jackfolla said:
poi ho il form relativo agli item:
si, che avrà estensione .php:
[php]<?
$i=$_POST['N°']; // perchè ti complichi la vita con questo N°??? XD
?>
<form method="POST" name="form1" id="form1" action="terzo_script.php>
<table width="42%" border="0" align="center">
<?
$f=1;
while ($f<=$i)
{
echo "<tr>
<td height='18' class='headerTableGray'>
<div align='center'> Part Number
<input type='text' name='Part Number".$f."' id='Part Number'>
</div></td>
<td class='headerTableGray'><label>
<div align='center'>Serial Number
<input type='text' name='Serial Number".$f."' id='Serial Number'>
</div>
</label></td>
</tr>";
$f=$f+1;
}
?>
</table>
<p> </p>
<p align="center">
<label>
<input type="hidden" name="N°" value="<? echo $i; ?>">
<input type="submit" name="button" id="button" value="Invia">
</label>
</p>
</form>
[/php]
Non ho testato, ma così dovrebbe funzionare
ti dovrebbe creare $i righe all'interno del tuo formFin quì dovremmo esserci credo
Se si, passiamo poi allo script di inserimento
-
funziona!
solo ce un problemino....
ho sostituito N***° ***con num
ho messo nell'action del form la pagina dove inviare num che e la stessa dove eseguo il secondo script. ma la variabile non viene passata:bho:
se al posto della variabile passata metto un numero il tuo script va alla perfezione.....
-
@jackfolla said:
funziona!
@jackfolla said:
solo ce un problemino....
li hai modificati così?:?
file_uno.html
[html]
<form name="form3" method="post" action="file_due.php">
<label>N°
<select name="num" id="num" type="select-one">
..........
[/html]file_due.php
[php]<?
$i=$_POST['num'];
?>
...............[/php]
-
si....
solo che file1.html è carico_item.php
e il form di selezione cosi
<form name="form3" method="post" action="file_due.php" OnSelect="submit">
-
praticamente deve stare tutto in una pagina.php e dopo aver fatto il submit degli item heiderare su una pagina dove faccio il riepilogo di tutti i dati e eventualmente stamparli.....ma perche hanno scelto me per questo progetto?
-
@jackfolla said:
si....
solo che file1.html è carico_item.php
e il form di selezione cosi
<form name="form3" method="post" action="file_due.php" OnSelect="submit">
spe', forse intendi che quando selezioni il numero di righe nel file carico_item.php non apre la pagina file_due.php??:?
-
gli script stanno tutti nella stessa pagina che e carico_item.php
prima di cio ce una query che mi riepiloga i dati generali della bolla di carico che ho inserito con un precedente form....
in questa pagina io dovrei selezionare il numero di item e inserire part number e serial number relativi alla bolla.
poi effettuare il submit per registrare i dati....
-
non vedo nessun errore....:x forse e l'eta sto perdendo colpi....:)
[html]
<table width="100%" border="0">
<tr>
<td><div align="center"><strong>Seleziona Il Numero di Item Presenti sulla documento</strong></div></td>
</tr>
<tr>
<td><div align="center">
<form name="form3" method="post" action="carico_item.php" OnSelect="submit" >
<label>N°
<select name="num" id="num">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</label>
<p>
<label></label>
</p>
</form>
</div></td>
</tr>
</table>
<?
$i=$_POST['num'];
?>
<form method="POST" name="form1" id="form1" action="carico_item.php >
<table width="42%" border="0" align="center">
<?
$f=1;
while ($f<=$i)
{
echo "<tr>
<td height='18' class='headerTableGray'>
<div align='center'> Part Number
<input type='text' name='Part Number".$f."' id='Part Number'>
</div></td>
<td class='headerTableGray'><label>
<div align='center'>Serial Number
<input type='text' name='Serial Number".$f."' id='Serial Number'>
</div>
</label></td>
</tr>" ;
$f=$f+1;
}
?>
</table>
<p> </p>
<p align="center">
<label>
<input type="hidden" name="N°" value="<? echo $i; ?>">
<input type="submit" name="button" id="button" value="Invia">
</label>
</p>
</form>
[/html]
-
@jackfolla said:
praticamente deve stare tutto in una pagina.php e dopo aver fatto il submit degli item heiderare su una pagina dove faccio il riepilogo di tutti i dati e eventualmente stamparli.....ma perche hanno scelto me per questo progetto?
I tre script possono tranquillamente stare anche dentro una stessa paginacarico_item.php
[php]
<form name="form3" method="post" action="carico_item.php">
<label>N°
<select name="num" id="num" type="select-one">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</label>
<input type="hidden" name="action" value="1">
<input type="submit" value="seleziona">
</form><?
$action=$_POST['action'];
switch ($action)
{
case 1:$i=$_POST['num']; echo '<form method="POST" name="form1" id="form1" action="carico_item.php"> <table width="42%" border="0" align="center">'; $f=1; while ($f<=$i) { echo "<tr> <td height='18' class='headerTableGray'> <div align='center'> Part Number <input type='text' name='PNumber".$f."' id='PNumber".$F."'> </div></td> <td class='headerTableGray'><label> <div align='center'>Serial Number <input type='text' name='SNumber".$f."' id='SNumber".$f."'> </div> </label></td> </tr>"; $f=$f+1; }
echo "</table>
<p> </p>
<p align='center'>
<label>
<input type='hidden' name='num' value='".$i."'>
<input type='hidden' name='action' value='2'>
<input type='submit' name='button' id='button' value='Invia'>
</label>
</p>
</form>";
break;}
[/php]
edit: avevo dimenticato il break
-
è una bomba!
solo devo risovlere un piccolo bug....
nella stessa pagina io paaso una variabile di modulo per effettuare il riepilogo dei dati generali della bolla di carico.
quando vado a selezionare il numero di elementi da caricare probabimente perdo la variabile post che uso per effettuare la query....
secondo te se la salvo come variabile di sessione risolvo il problema?
comunque mi hai salvato la vita.....
devo solo capire come fare lo script di invio dei dati al db..... ma una cosa alla volta......
-
@jackfolla said:
secondo te se la salvo come variabile di sessione risolvo il problema?
O te la continui a portar dietro tramite hidden data o te la "trasporti" tramite le sessioni la decisione sta a te