wlazly91i
3.09.2014, 23:36:11
Witam!
Mam za zadanie tworzyć dynamicznie tabele dwuwymiarową w html za pomocą formularza z selectami określać iośc kolumn i wierszy następnie do wygenerowanej tablicy wpisać dane i wysłać formularzem, formularz po wysłaniu ma zostać na stronie w tym samym miejscu z wpisanymi danymi a tylko dane wysłane metodą POST czy da się tak zrobić?
poniżej kod który generuje dynamicznie tabele ale po wysłaniu fomularza z danymi formularz znika i nie wiem jak to przeskoczyć?
jakieś sugestie?
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="index.php" method="post" id="formu" >
<select name="rozA" onchange = "document.getElementById('formu').submit()">
<option
<?php if($_POST['rozA'] == '1'){echo("selected");}?>>1</option>
<option
<?php if($_POST['rozA'] == '2'){echo("selected");}?>>2</option>
<option
<?php if($_POST['rozA'] == '3'){echo("selected");}?>>3</option>
<option
<?php if($_POST['rozA'] == '4'){echo("selected");}?>>4</option>
<option
<?php if($_POST['rozA'] == '5'){echo("selected");}?>>5</option>
</select>
<select name="rozB" onchange = "document.getElementById('formu').submit()">
<option
<?php if($_POST['rozB'] == '1'){echo("selected");}?>>1</option>
<option
<?php if($_POST['rozB'] == '2'){echo("selected");}?>>2</option>
<option
<?php if($_POST['rozB'] == '3'){echo("selected");}?>>3</option>
<option
<?php if($_POST['rozB'] == '4'){echo("selected");}?>>4</option>
<option
<?php if($_POST['rozB'] == '5'){echo("selected");}?>>5</option>
</select>
<select name="rozC" onchange = "document.getElementById('formu').submit()">
<option
<?php if($_POST['rozC'] == '1'){echo("selected");}?>>1</option>
<option
<?php if($_POST['rozC'] == '2'){echo("selected");}?>>2</option>
<option
<?php if($_POST['rozC'] == '3'){echo("selected");}?>>3</option>
<option
<?php if($_POST['rozC'] == '4'){echo("selected");}?>>4</option>
<option
<?php if($_POST['rozC'] == '5'){echo("selected");}?>>5</option>
</select>
</form>
<?php
$_SESSION['rozA']= $_POST['rozA'];
$_SESSION['rozB']= $_POST['rozB'];
$_SESSION['rozC']= $_POST['rozC'];
$A= $_SESSION['rozA'];
$B= $_SESSION['rozB'];
$C= $_SESSION['rozC'];
echo '<form method="post" id="gora">'; echo '<table style="margin-left:100px;" name="macA">'; for($i=0;$i<$B;$i++)
{
for($j=0;$j<$C;$j++)
{
echo '<td><input type="text" style="width:44px;background:blue;" name="Ax'.$i.'y'.$j.'" id="text" value="'.$_POST['Ax'.$i.'y'.$j].'"></td>'; }
}
echo '<table name="macB">'; for($i=0;$i<$A;$i++)
{
for($j=0;$j<$B;$j++)
{
echo '<td><input type="text" style="width:44px;background:green;" name="Bx'.$i.'y'.$j.'" id="text" value=""></td>';
}
}
echo '<input type="submit" value="Oblicz"/>'; ?>
</body>
</html>
nospor
4.09.2014, 10:06:38
Stworzyles dwa formularze. Pierwszy formularz mowi, ile ma byc wierszy i kolumn, zas drugi formularz wysyla dane z utworzonej macierzy. Wysylajac wiec drugi formularz, tracisz dane, ktore byly w pierwszym formularzu. Logiczne wiec, ze wszystko znika.
W drugim formularzu, ktory wysyla dane z macierzy, musisz dorobic pola ukryte (HIDDEN) i w te pola wpisac te wartosci, ktore zostaly przekazane z pierwszego forma. Wowczas wszystko bedzie grac.
ps: Twoje uzycie sesji jest totalnie bez sensu.
Raz, ze sesja i tak ci sie nie tworzy, bo sesja musi byc tworzona na samym poczatku i nic przed nią nie moze isc do przegladarki
A dwa, ze ty i tak zawsze do sesji wkladasz dane z forma, nawet jak nic nie idzie...
wlazly91i
4.09.2014, 10:23:59
zrobiłem tak jak poniżej ale jak odwołać się do tych pól już w pętli for żeby było tylko powtórzeń?
PS: sesja była na próbę nie usunąłem przy podaniu kodu na stone
<html>
<head>
<meta charset="utf-8">
</head>
<style>
#macA
{
margin-left:100px;
}
#macB
{
}
#macC
{
margin-left:100px;
margin-top:-93px;
}
</style>
<script>
function powieksz(obiekt, wartosc) {
obiekt.style.marginLeft=wartosc;
}
</script>
<body>
<form action="index.php" method="post" id="formu" >
<select name="rozA" onchange = "document.getElementById('formu').submit()">
<option
<?php if($_POST['rozA'] == '1'){echo("selected");}?>>1</option>
<option
<?php if($_POST['rozA'] == '2'){echo("selected");}?>>2</option>
<option
<?php if($_POST['rozA'] == '3'){echo("selected");}?>>3</option>
<option
<?php if($_POST['rozA'] == '4'){echo("selected");}?>>4</option>
<option
<?php if($_POST['rozA'] == '5'){echo("selected");}?>>5</option>
</select>
<select name="rozB" onchange = "document.getElementById('formu').submit()">
<option
<?php if($_POST['rozB'] == '1'){echo("selected");}?>>1</option>
<option
<?php if($_POST['rozB'] == '2'){echo("selected");}?>>2</option>
<option
<?php if($_POST['rozB'] == '3'){echo("selected");}?>>3</option>
<option
<?php if($_POST['rozB'] == '4'){echo("selected");}?>>4</option>
<option
<?php if($_POST['rozB'] == '5'){echo("selected");}?>>5</option>
</select>
<select name="rozC" onchange = "document.getElementById('formu').submit()">
<option
<?php if($_POST['rozC'] == '1'){echo("selected");}?>>1</option>
<option
<?php if($_POST['rozC'] == '2'){echo("selected");}?>>2</option>
<option
<?php if($_POST['rozC'] == '3'){echo("selected");}?>>3</option>
<option
<?php if($_POST['rozC'] == '4'){echo("selected");}?>>4</option>
<option
<?php if($_POST['rozC'] == '5'){echo("selected");}?>>5</option>
</select>
</form>
<?php
$A= $_POST['rozA'];
$B= $_POST['rozB'];
$C= $_POST['rozC'];
echo '<form method="post" id="gora">'; echo '<input type="hidden" name="rozmA" value="'.$A.'">'; echo '<input type="hidden" name="rozmB" value="'.$B.'">'; echo '<input type="hidden" name="rozmC" value="'.$C.'">'; echo '<table name="macA" id="macA";">'; for($i=0;$i<$A;$i++)
{
//$powieksz = powieksz(table,1000);
//echo $powieksz;
for($j=0;$j<$C;$j++)
{
echo '<td><input type="text" style="width:44px;background:blue;" name="Ax'.$i.'y'.$j.'" id="text" value=""></td>';
}
}
//echo '</div>';
//echo '<div id="secount">';
echo '<table name="macB" id="macB">'; for($i=0;$i<$A;$i++)
{
for($j=0;$j<$B;$j++)
{
echo '<td><input type="text" style="width:44px;background:green;" name="Bx'.$i.'y'.$j.'" id="text" value=""></td>'; }
}
echo '<table name="macC" id="macC">'; for($i=0;$i<$A;$i++)
{
for($j=0;$j<$C;$j++)
{
echo '<td><input type="text" style="width:44px;background:red;" name="Cx'.$i.'y'.$j.'" id="text" value=""></td>'; }
}
echo '<input type="submit" name="nazwa" value="wartość" />';
?>
</body>
</html>
nospor
4.09.2014, 10:32:25
Po pierwsze
rozmA
rozA
znajdz 10 roznic....
Po drugie: nie ma po drugie
wlazly91i
4.09.2014, 10:40:50
Dziękuję Bardzo


ok pozostawię to co zrobiłem bez komentarza:)
a czy w php da się wywoływać funkcjie zmieniającą style css np: żeby za każym przejściem pętli for zwiększała margines ewy danej tabeli
nospor
4.09.2014, 10:43:03
Cytat
a czy w php da się wywoływać funkcjie zmieniającą style css np: żeby za każym przejściem pętli for zwiększała margines ewy danej tabeli
A jaki problem w petli FOR zwiekszac jakąś zmienną o zadaną liczbe??
wlazly91i
4.09.2014, 10:45:19
ale chodzi mi mi o to czy trzeba wywoływać to funkcją jakąś czy jakoś inaczej ?
nospor
4.09.2014, 10:48:25
No ale po co?? Tlumacze ci, zwiekszasz jakąś zmienna w tej petli, i potem tę zmienną wstawiasz jako wartogsc marginesu...
echo '<td><input type="text" style="width:44px;background:blue;margin-left:'.$jakaszmienna.'px;" name="Ax'.$i.'y'.$j.'" id="text" value=""></td>';
wlazly91i
4.09.2014, 10:50:23
ja to na prawde jestem sto lat za murzynami

dzięki i sorki za zawracanie głowy i to że musisz się denerwować
nospor
4.09.2014, 10:51:38
Nie 100 a 200

Przenosze na przedszkole.
wlazly91i
4.09.2014, 10:53:02
no wiesz początki z php od tygodnia programuje:P
nospor
4.09.2014, 10:53:35
Dlatego też przenioslem na przedszkole. Tam tez mozesz zakladac kolejne ewentualne tematy
nospor
4.09.2014, 10:59:29
Co ty z tym nerwem? Obserwujesz mnie przez lornetke i widzisz w jakim stanie emocjonalnym jestem? Jesli nie, to nie wciskaj mi na sile stanu, w ktorym nie jestem.
wlazly91i
4.09.2014, 11:03:44
ale nie tobie nerwa wciskam
nospor
4.09.2014, 11:04:43
Nie ogarniam.... CHyba jestem za stary by kumać teksty dzieci z przedszkola....
wlazly91i
4.09.2014, 11:05:38
trudno mi się wypowiadać w kwestii czy jesteś stary czy nie
nospor
4.09.2014, 11:08:41
Wystarczy, ze nie wyparles sie przedszkola... W porownaniu wiec z Twoim wiekiem, kazdy na tym forum jest za stary