klepie ostatnio stronke w php i zmuszony bylem zrobic formularz, ktory jest generowany dynamicznie.
Niestety nie potrafie wyciagnac danych wprowadzonych do wszystkich pol opcjii i wszystkich pol tekstowych. W php do zmiennej zapisuje mi tylko ostatnie pola. Oto kod:
- generowanie formularza:
Kod
$linesQty = $_POST['ilosc'];
$wynik = PobierzDane($wariant, $sort);
$opcja = mssql_fetch_row($wynik);
function DisplayCompanyInForm($query, $line){
$wynik = $query;
$opcja = $line;
?>
//miejsce gdzie uzytkownik wybiera firme i ilosc produktow do wprowadzenia
<FORM ACTION="" METHOD="POST">
<SELECT NAME="Firma">
<?
for ($i = 0, $j = mssql_num_rows($wynik); $i < $j; $i++){
echo "<OPTION>".$opcja[1];
$opcja = mssql_fetch_row($wynik);
}
?>
</SELECT>
Il. Poz.: <INPUT TYPE="TEXT" NAME="ilosc" SIZE="1">
<input type="submit" value="OK">
</FORM>
<?
}
if ($linesQty == 0)
{
DisplayCompanyInForm($wynik, $opcja);
}
else {
if($linesQty != 0){
?>
//formularz w ktorym wpisuje produkty do zpisania w bd, niestety przesyla dane tylko ostatniej linii gdy wiecej niz 1.
<FORM ACTION="" METHOD="POST">
<?
for ($i = 0; $i < $linesQty; $i++){
echo "<SELECT NAME=Type>";
$qryMix = "SELECT * FROM T_MIX ORDER BY Name";
$tmp = mssql_query($qryMix);
$qryMixRes = mssql_fetch_row($tmp);
for($j = 0, $k = mssql_num_rows($tmp); $j < $k; $j++){
echo "<OPTION NAME=poz".$i.">".$qryMixRes[1];
$qryMixRes = mssql_fetch_row($tmp);
}
echo "</SELECT>";
echo "\tNumer seryjny: <INPUT TYPE=TEXT NAME=SerialNo SIZE=20><BR>";
}
?>
<input type="submit" value="Zapisz">
</FORM>
$wynik = PobierzDane($wariant, $sort);
$opcja = mssql_fetch_row($wynik);
function DisplayCompanyInForm($query, $line){
$wynik = $query;
$opcja = $line;
?>
//miejsce gdzie uzytkownik wybiera firme i ilosc produktow do wprowadzenia
<FORM ACTION="" METHOD="POST">
<SELECT NAME="Firma">
<?
for ($i = 0, $j = mssql_num_rows($wynik); $i < $j; $i++){
echo "<OPTION>".$opcja[1];
$opcja = mssql_fetch_row($wynik);
}
?>
</SELECT>
Il. Poz.: <INPUT TYPE="TEXT" NAME="ilosc" SIZE="1">
<input type="submit" value="OK">
</FORM>
<?
}
if ($linesQty == 0)
{
DisplayCompanyInForm($wynik, $opcja);
}
else {
if($linesQty != 0){
?>
//formularz w ktorym wpisuje produkty do zpisania w bd, niestety przesyla dane tylko ostatniej linii gdy wiecej niz 1.
<FORM ACTION="" METHOD="POST">
<?
for ($i = 0; $i < $linesQty; $i++){
echo "<SELECT NAME=Type>";
$qryMix = "SELECT * FROM T_MIX ORDER BY Name";
$tmp = mssql_query($qryMix);
$qryMixRes = mssql_fetch_row($tmp);
for($j = 0, $k = mssql_num_rows($tmp); $j < $k; $j++){
echo "<OPTION NAME=poz".$i.">".$qryMixRes[1];
$qryMixRes = mssql_fetch_row($tmp);
}
echo "</SELECT>";
echo "\tNumer seryjny: <INPUT TYPE=TEXT NAME=SerialNo SIZE=20><BR>";
}
?>
<input type="submit" value="Zapisz">
</FORM>
dzieki wielkie z gory za pomoc i uwagi bo pewnie troche ich bedzie