Modifica menu select

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, come posso fare recuperare il varole del menu tendina quando si invia per sbaglio la form e devo ancora scrivere?

Io ho questo codice:

recupero dati $row in questo modo:

PHP:
  $data = $row['data'];
         $data_explode = explode('-', $data); 
         $gg = $data_explode[2];
         $mm = $data_explode[1];
         $aa = $data_explode[0];

e il form ha questi dati:

PHP:
<tr>
	<td>Data</td>
	<td>

	<select name="inserimento_giorno">
<?php
for ($i=1; $i<=31; $i++)
{
?>
 <option value="<?php echo $i; ?>"<?php if($gg=="".$i."") echo 'selected'?> ><?php echo $i; ?></option>
<?php
}?>
</select>
<select name="inserimento_mese">
<?php
for ($i=1; $i<=12; $i++)
{
?><option value="<?php echo $i; ?>"<?php if($mm=="".$i."") echo 'selected'?> ><?php echo $i; ?></option>
<?php
}?>
</select>
<select name="inserimento_anno">
<?php
for ($i=1990; $i<=date("Y"); $i++)
{
?><option value="<?php echo $i; ?>"<?php if($aa=="".$i."") echo 'selected'?> ><?php echo $i; ?></option>
<?php }
?>
</select> 
	</td>
</tr>

ora ho messo mm , gg , aa essendo che la data la salvo con il campo "date" nel database.

Mi dite come posso fare per far che rimanga quello selezionato se uno deve ancora scrivere altre cose nella form.

Vi ringrazio molto.. e buona giornata.

Saluti,
luigi
 
Ciao, se i controlli li fai nella stessa pagina i dati dovrebbero rimanerti in POST
prova cosi
PHP:
<?php if($i==$gg || $i==$_POST['inserimento_giorno']) echo ' selected'?>
 
Ciao, se i controlli li fai nella stessa pagina i dati dovrebbero rimanerti in POST
prova cosi
PHP:
<?php if($i==$gg || $i==$_POST['inserimento_giorno']) echo ' selected'?>

niente .. ho provato ma funziona solo la prima volta e poi la seconda volta riparte dove ha fatto la prima volta...
ti spiego:

per adesso ho selezionato 11/10/2012 e se cambio l'anno e metto 2010 mentre che devo ancora scrivere il titolo della notizia,
per la prima volta funziona.. poi se rimetto 2012 e premo invio e devo ancora inserire il titolo lui mi rida il 2010..

come mai?

poi io la post la faccio cosi:
PHP:
$inserimento_giorno = (isset($_POST["inserimento_giorno"])) ? trim ($_POST["inserimento_giorno"]): '';
$inserimento_mese = (isset($_POST["inserimento_mese"])) ? trim ($_POST["inserimento_mese"]): '';
$inserimento_anno	= (isset($_POST["inserimento_anno"])) ? trim ($_POST["inserimento_anno"]): '';

perché se no php 5. mi da undifined variabile e faccendo cosi levo il notice..

mi dici come fare?

grazie mille.
 
strano, ma la query che estrae la data la fai ogni volta che si carica la pagina?
prova anche cosi
PHP:
<?php

if (isset($_POST["inserimento_giorno"]) && $i == $_POST['inserimento_giorno']) {
    echo ' selected';
} else if ($i == $gg) {
    echo ' selected';
}
?>
 
ciao è meglio che ti posto tutto il codice:

questo funziona cosi : news_modifica.php?id=1 etc..

Però non funziona ancora l'auto selezionamento..

quello dell'utente e quello della sezione .. come ho fatto io funzionano.. ma è quello della data che non riesco ad capire come mai non funziona..
eppure doveva essere la stessa cosa di utenti e sezioni.. giusto?
codice php
PHP:
<?php
// Includo 
require_once(dirname(__FILE__) . '/../inc.php');
require_once(dirname(__FILE__) . '/admin.php');
require_once(dirname(__FILE__) . "/../template/".$template_admin."/header.php");

		$intID = (int)$_GET["id"];
		$_cat = (isset($_POST["cat"])) ? trim ($_POST["cat"]): '';
		$active = (isset($_POST["active"])) ? trim ($_POST["active"]): '';
		$cat = (isset($_POST["cat"])) ? trim ($_POST["cat"]): '';
		$inserimento_giorno = (isset($_POST["inserimento_giorno"])) ? trim ($_POST["inserimento_giorno"]): '';
		$inserimento_mese = (isset($_POST["inserimento_mese"])) ? trim ($_POST["inserimento_mese"]): '';
		$inserimento_anno	= (isset($_POST["inserimento_anno"])) ? trim ($_POST["inserimento_anno"]): '';
		
		
		$query = "SELECT * FROM news WHERE id=".$intID."";
		$result = $db->query($query)   or die($db->error);
		if(empty($intID)) {
		echo "ID non specificato";
}
elseif ($result->num_rows==0) { echo "Record non trovato"; }
else
{
		
	//Query SQL
		
	
		$strSQL = "SELECT * FROM news"
				. " WHERE id = ".$intID."";
		//Eseguo la query e recupero i dati
		$result =  $db->query($strSQL);
        $row = $result->fetch_assoc();
	
		$user_id = $row["_userid"];
		$catid = $row["_catid"];
        $titolo = htmlspecialchars($row['titolo']);
		$intro = htmlspecialchars($row['intro']);
        $testo = htmlspecialchars($row['testo']);
		$tag = $row['tag'];
        $data = $row['data'];
        $active = $row['active'];
       
		$data_explode = explode('-', $data); 
        $gg = $data_explode[2];
        $mm = $data_explode[1];
        $aa = $data_explode[0];		
		//Libero la memoria
		//mysqli_free_result($result);
		$result->free_result(); 
		


if(isset($_POST["invia"]))
{
	$_cat = protect($_POST["cat"]);
	$user_id = protect($_POST["user_select"]);
	$titolo = protect($_POST["titolo"]);
    $intro = protect(($_POST["intro"]));
	$testo = protect($_POST["testo"]);
      
    $tag = protect($_POST["tag"]);
    $active = protect($_POST["active"]);
	
	$dtmPubblicazione = "".$_POST["inserimento_anno"]."".$_POST["inserimento_mese"]."".$_POST["inserimento_giorno"]."";
  //  $data_explode = explode('-', $dtmPubblicazione); 
   
	//."-".$data_explode[1]."-".$data_explode[0].""
	
	if($_POST["user_select"] == "0")
	{
	$error = "Non hai inserito l'utente";
	}elseif($_POST["cat"] == "0")
	{
	$error = "Non hai inserito la categoria";
	}
	elseif(empty($titolo))
	{
	$error = "Non hai inserito il titolo";
	}elseif(!isString($titolo))
	{
	  $error = "caratteri non amessi nel titolo";
	}
	elseif(empty($intro))
	{
	$error = "Non hai inserito l'introduzione";
	}
	elseif(empty($testo))
	{
	$error = "Non hai inserito il testo";
	}
	elseif(empty($data))
	{
	$error = "Non hai inserito la data";
	}
	elseif(empty($active))
	{
	$error = "Non hai inserito lo stato";
	}
	else
	{
	$db_cat = $db->real_escape_string($_cat);
	$db_user_id = $db->real_escape_string($user_id);
    $db_titolo = $db->real_escape_string($titolo);
    $db_intro = $db->real_escape_string($intro);
	$db_testo = $db->real_escape_string($testo);
    $db_tag = $db->real_escape_string($tag);
    $db_active = $db->real_escape_string($active);
	
	$strSQL = "UPDATE news SET"
						. " _userid = ".$db_user_id.","
                        . "_catid = ".$db_cat.","
						. " titolo = '".$db_titolo."',"
						. " intro = '".$db_intro."',"
						. " testo = '".$db_testo."',"
						. " tag = '".$db_tag."',"
						. " data = '".$dtmPubblicazione."',"
						. " active = '".$db_active."'"
                		. " WHERE id = ".$intID."";	
						
		$db->query($strSQL)   or die($db->error);
		$db->close();
		$msg = "fatto";
		
		}
		
		
}

?>

<p class="titolo">Modifica News: &nbsp;&nbsp;<?php echo $row["titolo"]; ?></p>

<?php	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	?>
<?php	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {?>


	<form action="news_modifica.php?<?php echo $_SERVER['QUERY_STRING']; ?>" method="post">
	
<table width="100%" align="center">
<tr>
      <td width="15%">Seleziona user_select</td>
      <td><?php echo "<select name=\"user_select\">";?>

   
        <option  selected="selected" value="0">Seleziona</option>
        <?php
	$result = $db->query("SELECT * FROM utenti");
	
	while($row = $result->fetch_array())
	{
	$user= $row['_user'];
	$id = $row['id'];
  ?>
        <option value="<?php echo $id; ?>"<?php if($user_id=="".$id."") echo ' selected'?>><?php echo $user; ?></option>
        <?php
  }
?>
      </select></td>
    </tr>
	<tr>
      <td>Seleziona Categoria</td>
      <td><?php echo "<select name=\"cat\">";?>

   
        <option  selected="selected" value="0">Seleziona</option>
        <?php
	$result = $db->query("SELECT * FROM news_categorie");
	
	while($row = $result->fetch_array())
	{
	$_cat= $row['titolo'];
	$id = $row['id'];
  ?>
  	    <option value="<?php echo $id; ?>"<?php if($catid=="".$id."") echo ' selected'?> ><?php echo $row["titolo"]; ?></option>
        <?php
  }
?>
      </select></td>
    </tr>
<tr>
	<td>Titolo</td>
	<td><input name="titolo" type="text" id="titolo"  value="<?php if(isset($_POST["titolo"])){echo htmlspecialchars($_POST["titolo"]);}else { echo $titolo; }?>" size="40"  /></td>
</tr>
<tr>
<tr>
	<td>introduzione</td>
	<td><textarea cols="50" rows="10" name="intro"><?php if(isset($_POST["intro"])){echo htmlspecialchars($_POST["intro"]);}else { echo $intro; }?></textarea></td>
</tr>
<tr>
	<td>Testo</td>
	<td><textarea cols="50" rows="10" name="testo"><?php if(isset($_POST["testo"])){echo htmlspecialchars($_POST["testo"]);}else { echo $testo; }?></textarea></td>
</tr>

<tr>
	<td>Data</td>
	<td>

	<select name="inserimento_giorno">
<?php
for ($i=1; $i<=31; $i++)
{
?>
 <option value="<?php echo $i; ?>"<?php if($gg=="".$i."" || $i==$inserimento_giorno) echo ' selected';?> ><?php echo $i; ?></option>
<?php
}?>
</select>
<select name="inserimento_mese">
<?php
for ($i=1; $i<=12; $i++)
{
?><option value="<?php echo $i; ?>"<?php if($mm=="".$i.""  || $i==$inserimento_mese) echo ' selected';?> ><?php echo $i; ?></option>
<?php
}?>
</select>
<select name="inserimento_anno">
<?php
for ($i=1990; $i<=date("Y"); $i++)
{
?><option value="<?php echo $i; ?>"<?php if($aa=="".$i.""  || $i==$inserimento_anno) echo ' selected';?> ><?php echo $i; ?></option>
<?php }
?>
</select> 
	</td>
</tr><tr>
	<td>tag</td>
	<td><input name="tag" type="text" id="tag"  value="<?php if(isset($_POST["tag"])){echo htmlspecialchars($_POST["tag"]);}else { echo $tag; }?>"  /></td>
</tr>
<tr>
	<td>Stato di attivazione</td>
	<td> Pubblica<input type="radio" name="active" value="1"  <?php if($active=='1') echo 'checked="checked"'?> />
     Nascosto<input type="radio" name="active" value="2" <?php if($active=='2') echo 'checked="checked"'?>/>
  </tr>
<tr>
	<td></td>
	<td></td>
</tr>
</table>
		<input type="submit" value="Modfiica" name="invia" />&nbsp;<input type="reset" value="Annulla Modifiche">

	</form>
	<?php 
	}
	}
	?><?php
require_once(dirname(__FILE__) . "/../template/".$template_admin."/footer.php");
?>

grazie mille uso mysqli, e questo codice funziona perfettamente e inserisce la data giusta nel db.. e solamente devo riuscire ad far che rimane i dati del giorno del mese e dell'anno..

vi ringrazio molto.
buona serata.
 
ho fatto delle modifiche al codice: ma non funziona, come mai ?:
codice:

PHP:
<?php
// Includo 
require_once(dirname(__FILE__) . '/../inc.php');
require_once(dirname(__FILE__) . '/admin.php');
require_once(dirname(__FILE__) . "/../template/".$template_admin."/header.php");

		$intID = (int)$_GET["id"];
		$_cat = (isset($_POST["cat"])) ? trim ($_POST["cat"]): '';
		$active = (isset($_POST["active"])) ? trim ($_POST["active"]): '';
		$cat = (isset($_POST["cat"])) ? trim ($_POST["cat"]): '';
		$inserimento_giorno = (isset($_POST["inserimento_giorno"])) ? trim ($_POST["inserimento_giorno"]): '';
		$inserimento_mese = (isset($_POST["inserimento_mese"])) ? trim ($_POST["inserimento_mese"]): '';
		$inserimento_anno	= (isset($_POST["inserimento_anno"])) ? trim ($_POST["inserimento_anno"]): '';
		
		
		$query = "SELECT * FROM news WHERE id=".$intID."";
		$result = $db->query($query)   or die($db->error);
		if(empty($intID)) {
		echo "ID non specificato";
}
elseif ($result->num_rows==0) { echo "Record non trovato"; }
else
{
        $row = $result->fetch_array();
	
		$user_id = $row["_userid"];
		$catid = $row["_catid"];
        $titolo = htmlspecialchars($row['titolo']);
		$intro = htmlspecialchars($row['intro']);
        $testo = htmlspecialchars($row['testo']);
		$tag = $row['tag'];
        $data = $row['data'];
        $active = $row['active'];
       
		$data_explode = explode('-', $data); 
        $gg = $data_explode[2];
        $mm = $data_explode[1];
        $aa = $data_explode[0];		
		//Libero la memoria
		//mysqli_free_result($result);
		$result->free_result(); 
		


if(isset($_POST["invia"]))
{
	$_cat = protect($_POST["cat"]);
	$user_id = protect($_POST["user_select"]);
	$titolo = protect($_POST["titolo"]);
    $intro = protect(($_POST["intro"]));
	$testo = protect($_POST["testo"]);
      
    $tag = protect($_POST["tag"]);
    $active = protect($_POST["active"]);
	
	$dtmPubblicazione = "".$_POST["inserimento_anno"]."-".$_POST["inserimento_mese"]."-".$_POST["inserimento_giorno"]."";

	
	if($_POST["user_select"] == "0")
	{
	$error = "Non hai inserito l'utente";
	}elseif($_POST["cat"] == "0")
	{
	$error = "Non hai inserito la categoria";
	}
	elseif(empty($titolo))
	{
	$error = "Non hai inserito il titolo";
	}elseif(!isString($titolo))
	{
	  $error = "caratteri non amessi nel titolo";
	}
	elseif(empty($intro))
	{
	$error = "Non hai inserito l'introduzione";
	}
	elseif(empty($testo))
	{
	$error = "Non hai inserito il testo";
	}
	elseif(empty($data))
	{
	$error = "Non hai inserito la data";
	}
	elseif(empty($active))
	{
	$error = "Non hai inserito lo stato";
	}
	else
	{
	$db_cat = $db->real_escape_string($_cat);
	$db_user_id = $db->real_escape_string($user_id);
    $db_titolo = $db->real_escape_string($titolo);
    $db_intro = $db->real_escape_string($intro);
	$db_testo = $db->real_escape_string($testo);
    $db_tag = $db->real_escape_string($tag);
    $db_active = $db->real_escape_string($active);
	
	$strSQL = "UPDATE news SET"
						. " _userid = ".$db_user_id.","
                        . "_catid = ".$db_cat.","
						. " titolo = '".$db_titolo."',"
						. " intro = '".$db_intro."',"
						. " testo = '".$db_testo."',"
						. " tag = '".$db_tag."',"
						. " data = '".$dtmPubblicazione."',"
						. " active = '".$db_active."'"
                		. " WHERE id = ".$intID."";	
						
		$db->query($strSQL)   or die($db->error);
		$db->close();
		$msg = "fatto";
		
		}
		
		
}

?>

<p class="titolo">Modifica News: &nbsp;&nbsp;<?php echo $row["titolo"]; ?></p>

<?php	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	?>
<?php	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {?>


	<form action="news_modifica.php?<?php echo $_SERVER['QUERY_STRING']; ?>" method="post">
	
<table width="100%" align="center">
<tr>
      <td width="15%">Seleziona user_select</td>
      <td><?php echo "<select name=\"user_select\">";?>

   
        <option  selected="selected" value="0">Seleziona</option>
        <?php
	$result = $db->query("SELECT * FROM utenti");
	
	while($row = $result->fetch_array())
	{
	$user= $row['_user'];
	$id = $row['id'];
  ?>
        <option value="<?php echo $id; ?>"<?php if($user_id=="".$id."") echo ' selected'?>><?php echo $user; ?></option>
        <?php
  }
?>
      </select></td>
    </tr>
	<tr>
      <td>Seleziona Categoria</td>
      <td><?php echo "<select name=\"cat\">";?>

   
        <option  selected="selected" value="0">Seleziona</option>
        <?php
	$result = $db->query("SELECT * FROM news_categorie");
	
	while($row = $result->fetch_array())
	{
	$_cat= $row['titolo'];
	$id = $row['id'];
  ?>
  	    <option value="<?php echo $id; ?>"<?php if($catid=="".$id."") echo ' selected'?> ><?php echo $row["titolo"]; ?></option>
        <?php
  }
?>
      </select></td>
    </tr>
<tr>
	<td>Titolo</td>
	<td><input name="titolo" type="text" id="titolo"  value="<?php if(isset($_POST["titolo"])){echo htmlspecialchars($_POST["titolo"]);}else { echo $titolo; }?>" size="40"  /></td>
</tr>
<tr>
<tr>
	<td>introduzione</td>
	<td><textarea cols="50" rows="10" name="intro"><?php if(isset($_POST["intro"])){echo htmlspecialchars($_POST["intro"]);}else { echo $intro; }?></textarea></td>
</tr>
<tr>
	<td>Testo</td>
	<td><textarea cols="50" rows="10" name="testo"><?php if(isset($_POST["testo"])){echo htmlspecialchars($_POST["testo"]);}else { echo $testo; }?></textarea></td>
</tr>

<tr>
	<td>Data</td>
	<td>

	<select name="inserimento_giorno">
<?php
for ($i=1; $i<=31; $i++)
{
?>
 <option value="<?php echo $i; ?>"<?php if($gg=="".$i."" || $i==$inserimento_giorno) echo ' selected';?> ><?php echo $i; ?></option>
<?php
}?>
</select>
<select name="inserimento_mese">
<?php
for ($i=1; $i<=12; $i++)
{
?><option value="<?php echo $i; ?>"<?php if($mm=="".$i.""  || $i==$inserimento_mese) echo ' selected';?> ><?php echo $i; ?></option>
<?php
}?>
</select>
<select name="inserimento_anno">
<?php
for ($i=1990; $i<=date("Y"); $i++)
{
?>
<option value="<?php echo $i; ?>"<?php if($aa=="".$i.""  || $i==$inserimento_anno) echo ' selected';?> ><?php echo $i; ?></option>
<?php }
?>
</select> 
	</td>
</tr><tr>
	<td>tag</td>
	<td><input name="tag" type="text" id="tag"  value="<?php if(isset($_POST["tag"])){echo htmlspecialchars($_POST["tag"]);}else { echo $tag; }?>"  /></td>
</tr>
<tr>
	<td>Stato di attivazione</td>
	<td> Pubblica<input type="radio" name="active" value="1"  <?php if($active=='1') echo 'checked="checked"'?> />
     Nascosto<input type="radio" name="active" value="2" <?php if($active=='2') echo 'checked="checked"'?>/>
  </tr>
<tr>
	<td></td>
	<td></td>
</tr>
</table>
		<input type="submit" value="Modfiica" name="invia" />&nbsp;<input type="reset" value="Annulla Modifiche">

	</form>
	<?php 
	}
	}
	?><?php
require_once(dirname(__FILE__) . "/../template/".$template_admin."/footer.php");
?>

grazie mille.
 

Discussioni simili