webForumDet fria alternativet
Logga in / Bli medlem

Variabel har inget värde efter form

PHP

4 svar · 302 visningar · startad av raki

Medlem sedan jan. 2003137 inlägg
Trådstart#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>&Aring;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&aring;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>&nbsp;</td>
                                      </tr>
                                      <tr> 
                                        <td width="3">&nbsp;</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">&nbsp;</td>
                                            </tr>
                                            <? } ?>
                                          </table>
Medlem sedan mars 20025 907 inlägg
#2
<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.

Medlem sedan jan. 2003137 inlägg
#3

Jag löste det :bire

Medlem sedan juni 200032 967 inlägg
#4

raki skrev:

Jag löste det :bire

Och hur?

Problemlösningar skall återvinnas. :)

Medlem sedan jan. 2003137 inlägg
#5

Ä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);
?>
251 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)