R raki Medlem sedan jan. 2003 137 inlägg Trådstart 20 maj 2003 08:43 #1 När jag klickar på submit första gången får inte year och month något värde, andra gången man klickar däremot får den sitt värde.
Nån som vet vad jag kan göra?
Det funkar ju om jag sättre method="get" men då skickar den ju med allt, ser ut såhär då:
?year=2001&month=01&visa.x=30&visa.y=10
koden:
<table border="0" cellspacing="0" cellpadding="0">
<form action="?visa=yes&year=<?=$year?>&month=<?=$month?>" method="post">
<tr>
<td>År:
<?php
$date = date("Y");
echo "<select name=\"year\">";
for ($i = 2001; $i <= $date; $i++) {
echo "<option value=\"$i\">$i</option>";
}
echo "</select>";
$sortera = "yes"
?>
</td>
<td>Månad:
<select name="month">
<option value="01">Januari</option>
<option value="02">Februari</option>
</select></td>
<td><input name="visa" id="visa" type="image" src="img/content_submit_skicka.gif"></td>
</tr>
</form>
</table>
</td>
<td> </td>
</tr>
<tr>
<td width="3"> </td>
<td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
include("_phpstyles/php_styles.php");
if($visa == "yes") {
$sql = mysql_query("SELECT *,DATE_FORMAT(datum, '%Y-%m-%d (%H:%i)') as tid FROM nyheter WHERE DATE_FORMAT(datum,'%Y')='{$_GET['year']}' AND DATE_FORMAT(datum,'%m')='{$_GET['month']}'");
}else{
$sql = mysql_query("SELECT *,DATE_FORMAT(datum, '%Y-%m-%d (%H:%i)') as tid FROM nyheter ORDER BY id DESC limit 3");
}
while ($row = mysql_fetch_array($sql)) {
$id = $row['id'];
$rubrik = $row['rubrik'];
$text = $row['text'];
$email = $row['email'];
$tid = $row['tid'];
$namn = $row['namn'];
$text = styles($text);
?>
<tr>
<td><img src="img/content_icon_paper.gif" width="7" height="9"><span class="rubrik">
<?=$rubrik?>
</span></td>
<td>
<?=$tid?>
</td>
</tr>
<tr>
<td colspan="2"><?=$text?></td>
</tr>
<tr>
<td height="10" colspan="2"> </td>
</tr>
<? } ?>
</table>
Peeer Medlem sedan mars 2002 5 907 inlägg <form action="?visa=yes&year=<?=$year?>&month=<?=$month?>"
$month och $year har ju inget värde innan formuläret postats. De hämtar sina värden ifrån just formuläret, och kan således inte ha några värden innan det är postat. Vill du ha ut de värdena men inte använda method="get" så är det nog ett javascript du söker.
@nders Medlem sedan juni 2000 32 967 inlägg
raki skrev:
Jag löste det
Och hur?
Problemlösningar skall återvinnas.
R raki Medlem sedan jan. 2003 137 inlägg Ändrade dessa saker:
<form action="index.php" method="post">
<?php
if(!$year && !$month) {
$sql = mysql_query("SELECT *,DATE_FORMAT(datum, '%Y-%m-%d (%H:%i)') as tid FROM nyheter ORDER BY id DESC limit 3");
}else{
$sql = mysql_query("SELECT *,DATE_FORMAT(datum, '%Y-%m-%d (%H:%i)') as tid FROM nyheter WHERE DATE_FORMAT(datum,'%Y')='{$_POST['year']}' AND DATE_FORMAT(datum,'%m')='{$_POST['month']}'");
}
if (mysql_affected_rows() == 0) {
echo "<tr>";
echo "<td>Inga nyheter hittades!</td>";
echo "</tr>";
}
while ($row = mysql_fetch_array($sql)) {
$id = $row['id'];
$rubrik = $row['rubrik'];
$text = $row['text'];
$email = $row['email'];
$tid = $row['tid'];
$namn = $row['namn'];
$text = styles($text);
?>