[JS,PHP] Dane nie są przesyłane - Wersja do druku
+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: [JS,PHP] Dane nie są przesyłane (/thread-js-php-dane-nie-sa-przesylane)
|
[JS,PHP] Dane nie są przesyłane - kbzium - 04-08-2011
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:
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()
}
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)
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>';
}
}
RE: [JS,PHP] Dane nie są przesyłane - Kartofelek - 04-08-2011
ale namieszane ;]
readData tworzy przyciski...
Najlepsze są te id " "Data|name|"+row+","+col ". Normalnie nie wiem po co ludzie tak kombinują i z prostych rzeczy takie czary tworzą.
Włącz sobie firebuga, spójrz co leci postem i będziesz miał rozwiązanie. Nic więcej nie potrzeba.
Najwyżej zrób print_r($_POST);
RE: [JS,PHP] Dane nie są przesyłane - kbzium - 05-08-2011
(04-08-2011, 23:40)Kartofelek napisał(a): ale namieszane ;]
readData tworzy przyciski...
Najlepsze są te id " "Data|name|"+row+","+col ". Normalnie nie wiem po co ludzie tak kombinują i z prostych rzeczy takie czary tworzą.
Włącz sobie firebuga, spójrz co leci postem i będziesz miał rozwiązanie. Nic więcej nie potrzeba.
Najwyżej zrób print_r($_POST);
Tak, ReadData() tworzy hidden inputy i jest to rozwiązanie tymczasowe. Firebug niestety nie znajduje błędów. Co do nazw to jest ich sporo i jakoś się musza wyróżniać akurat (wiem, że często lepiej jest uzyskać dostęp do pliku tablicą, a nie nadaniem nazwy).
Jakieś sugestie?
RE: [JS,PHP] Dane nie są przesyłane - Kartofelek - 05-08-2011
nie szukaj błędów. Sprawdź wysyłany post - co idzie. Jeżeli idą dobre dane - znaczy że strona odbiorcza zawodzi.
|