04-08-2011, 23:21
Cześć,
javascript dodaję sobie hidden inputy do istniejącego już formularza o id="Data" i cała operacaja przebiega pomyślnie (używam jak zawsze DOMa), tj. te inputy faktycznie powstają i są w nich dane jak należy. Form ma metodę post. I tutaj jest problem, gdy chcę submitować tego forma. Daję znajdź po id.submit() i faktycznie form jest submitowany, bo przechodzi do stronki z action (gdzie czyha odbieranie danych z post). Jednak na tej stronce nie są widoczne żadne dane, które powinny przecież zostać przesłane... co może być nie tak?
w pliku index.php, definicja pustego formularza:
Dodam że nie jest on w żadnej tabeli, bo ponoć z formem w tabeli jest problem.
w pliku source.js:
przy czym wszystkie funkcje typu D... są to funkcje oparte na DOMie, które na pewno działają prawidłowo.
a tak odbieram (plik result.php)
javascript dodaję sobie hidden inputy do istniejącego już formularza o id="Data" i cała operacaja przebiega pomyślnie (używam jak zawsze DOMa), tj. te inputy faktycznie powstają i są w nich dane jak należy. Form ma metodę post. I tutaj jest problem, gdy chcę submitować tego forma. Daję znajdź po id.submit() i faktycznie form jest submitowany, bo przechodzi do stronki z action (gdzie czyha odbieranie danych z post). Jednak na tej stronce nie są widoczne żadne dane, które powinny przecież zostać przesłane... co może być nie tak?
w pliku index.php, definicja pustego formularza:
Kod:
<form id="Data" method="POST" action="results.php"></form>
Dodam że nie jest on w żadnej tabeli, bo ponoć z formem w tabeli jest problem.
w pliku source.js:
Kod:
function ReadData()
{
for(var row = 0; row < HEIGHT; row++)
for(var col = 0; col < WIDTH; col++)
{
var current_field_elName = DcreateE("input");
Dset(current_field_elName, "name", "Name|"+row+","+col);
Dset(current_field_elName, "type", "hidden");
var current_field_elShortName = DcreateE("input");
Dset(current_field_elShortName, "name", "sName|"+row+","+col);
Dset(current_field_elShortName, "type", "hidden");
var current_field_elDirection = DcreateE("input");
Dset(current_field_elDirection, "name", "Direction|"+row+","+col);
Dset(current_field_elDirection, "type", "hidden");
var current_field_elParameter1 = DcreateE("input");
Dset(current_field_elParameter1, "name", "Parameter1|"+row+","+col);
Dset(current_field_elParameter1, "type", "hidden");
var dataForm = document.Data;
Dappend(dataForm, current_field_elName);
Dappend(dataForm, current_field_elShortName);
Dappend(dataForm, current_field_elDirection);
Dappend(dataForm, current_field_elParameter1);
} // funkcja na razie tylko tworzy inputy (nie wczytuje danych)
}
function WriteData()
{
var dataForm = document.Data;
// tego nie dotykaj, bo to umieszcza (o ile dobrze zrobiles formy) potrzebne informacje w tabeli danych
for(var row = 0; row < HEIGHT; row++)
for(var col = 0; col < WIDTH; col++)
{
DgetID("Data|name|"+row+","+col).value = ArrSimTable[row][col][0].name;
DgetID("Data|sName|"+row+","+col).value = ArrSimTable[row][col][0].shortName;
DgetID("Data|direction|"+row+","+col).value = ArrSimTable[row][col][0].direction;
DgetID("Data|parameter1|"+row+","+col).value = ArrSimTable[row][col][0].param1;
}
DgetID("Data").submit()
}
a tak odbieram (plik result.php)
Kod:
for($i=0;$i<Rows;$i++)
{
for($j=0;$j<Cols;$j++)
{
$str='\'Data|name|'.$i.','.$j.'\'';
echo $str.'<br>';
$name[$i][$j]=$_POST[$str];
$str='\'Data|sName|'.$i.','.$j.'\'';
$sName[$i][$j]=$_POST[$str];
$str='\'Data|direction|'.$i.','.$j.'\'';
$direction[$i][$j]=$_POST[$str];
$str='\'Data|param1|'.$i.','.$j.'\'';
$param1[$i][$j]=$_POST[$str];
echo $i.','.$j.' -- '.$name[$i][$j].','.$sName[$i][$j].','.$direction[$i][$j].','.$param1[$i][$j].'<br>';
}
}