Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61

    problema di POST a un altro form per inserimento dati DB

    salve
    ho un piccolo problema nel POSTARE ad un'altro Form, per l'inserimento in un DB, la sigla della Provincia e il comune di nascita ottenuti tramite select a cascata funzionante di seguito il codice:
    codice:
     <html>
     <head>
    		
           		<link href="conf.css" rel="stylesheet" type="text/css">
    		<title></title>
    	</head>
    <head>
    	<meta http-equiv="content-type" content="text/html charset=utf-8">
    	<meta name="author" content="">
    
    	<script type="text/javascript" src="jquery-1.3.2.js"></script>
    
    	
    	
    	<script type="text/javascript">
    $(document).ready(function(){
    
    		var scegli = '<option value="0">Scegli...</option>';
    		var attendere = '<option value="0">Attendere...</option>';
    		
    		$("select#comuni").html(scegli);
    		$("select#comuni").attr("disabled", "disabled");
    		
    	
    		$("select#province").change(function(){
    		    var provincia = $("select#province option:selected").attr('value');
    			$.post("select.php", {Cod_p:provincia}, function(data){
    			$("select#comuni").html(attendere);
    			$("select#comuni").attr("disabled", "disabled");
    			
    			
    			
    				$("select#comuni").removeAttr("disabled");
    				$("select#comuni").html(data);	
    			});
    		});	
    	});
    	
    	</script>
    </head>
    <?php
    include_once 'select.class.php';
    $opt = new SelectList();
    ?>
    <body>
     
    <h3><center>MASCHERA PER INSERIMENTO RECORD</center></h3>
    
    <form  action="insfe.php" method = "post">
    
      <CENTER><table border = "4">
    
     <tr><td>Scaffale:</td><td><input type= "int" size="5"
         name="Scaff"></td></tr>
    
    <tr><td>Cassetto:</td><td><input type= "int" size="5"
         name="Cas"></td></tr>    
    
    
    
     
    <tr><td>Cognome:</td><td><input type= "text" size="35"
         name="Cognome"> </td></tr>
              <tr><td>Nome:</td><td><input type= "text" size="35"
         name="Nome"></td></tr>
     <tr><td>Giorno:</td><td><input type= "int" size="1"  maxlength="2"
         name="GG"></td></tr>
    <tr><td>Mese:</td><td><input type= "int" size="1" maxlength="2"
         name="MM"></td></tr>
    <tr><td>Anno:</td><td><input type= "int" size="2" maxlength="4"
         name="AA"></td></tr>
    	<div id="container">
    
    		 <tr><td>Seleziona la Provincia:</td><td>
    			<select id="province" name="prov">
    			<?php echo $opt->ShowProvince(); ?>
    			</select>
    				
    			<tr><td>Seleziona il Comune:</td><td>
    			<select id="comuni" name="com">
    			<option>Scegli...</option>
    			</select>
    				
     <tr><td>Note:</td><td><input type= "text" size="40"
      name="No_te"></td></tr>
      
    <tr><td colspan = "1"><input type= "submit"
    value="inserisci il record"></td></tr>
    </div>
    </table>
    
    <?php
    print("<h3><a href=\"inizio1.php\" >Torna al menu' iniziale</a></h3>");
    ?>
    </form>
    </body>
    </html>
    Riepilogando riesco a postare tutti i campi tranne la sigla della provincia e il comune di nascita
    grazie per l'attenzione e i possibili suggerimenti

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    sarebbe strano il contrario
    i campi in questione non vengono inviati perchè vengono solo visualizzati!
    aggiungi un campo hidden per i comuni :
    codice:
    <input type="hidden"  name="com">
    (idem per le prov)

  3. #3
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    ho aggiunto il campo in questa maniera ma senza ottenere il risultato sperato:

    codice:
    <tr><td>Seleziona la Provincia:</td><td>
    			<select id="province" input type="hidden" name="prov">
    			<?php echo $opt->ShowProvince(); ?>
    			</select>
    
    			<tr><td>Seleziona il Comune:</td><td>
    			<select id="comuni" input type="hidden" name="com">
    			<option>Scegli...</option>
    			</select>

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    codice:
    <tr><td>Seleziona la Provincia:</td><td>
    			<select id="province" name="provincia">
    			<?php echo $opt->ShowProvince(); ?>
    			</select>
    
    			<tr><td>Seleziona il Comune:</td><td>
    			<select id="comuni" name="comune">
    			<option>Scegli...</option>
    			</select>
    nella pagina insfe.php
    codice:
    $provincia = htmlspecialchars($_POST['provincia']);
    $comune   = htmlspecialchars($_POST['comune']);

  5. #5
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    ho provato a fare come indicato ma , aime' non funziona, posto ulteriore codice e procedura utilizzata nella speranza di una sua risoluzione
    utilizzo, per la realizzazione delle due select a cascata la libreria Js jquery-1.3.2.js; un file di connessione al db e i seguenti file php select e select.class.php
    select :
    codice:
    <?php
    
    include_once 'select.class.php';
    $opt = new SelectList();
    if(isset($_POST['Cod_p']))
    {
    	echo $opt->ShowComuni();
    	die;
    }
    
    
    ?>
    select.class.php
    codice:
     <?
    session_start();
    $_SESSION['U_UTENTE']=$_SESSION['t'];
    $rec=$_SESSION['U_UTENTE'];
    $t=strtoupper($rec);
    ?>
    <?php
    
    class SelectList
    {
    	
    	protected $conn;
    	
    		public function __construct()
    		{
    			$this->DbConnect();
    		}
    	
    		protected function DbConnect()
    		{
    			include "db_config.php";
    			
    			$this->conn = mysql_connect($host,$t) OR die("Impossibile connettersi al database");
    			mysql_select_db($db,$this->conn) OR die("Impossibile selezionare il database $db");
    			
    			return TRUE;
    		}
    		/*
    		public function ShowRegioni()
    		{
    			$sql = "SELECT * FROM regioni";
    			$res = mysql_query($sql,$this->conn);
    			$regioni = '<option value="0">scegli...</option>';
    			
    				while($row = mysql_fetch_array($res))
    				{
    					$regioni .= '<option value="' . $row['id_reg'] . '">' . utf8_encode($row['nome_regione']) . '</option>';
    				}
    				
    			return $regioni;
    		}
    	
    		public function ShowProvince()
    		{
    			$sql = "SELECT DISTINCT * FROM province WHERE id_reg=$_POST[id_reg]";
    			$res = mysql_query($sql,$this->conn);
    			$province = '<option value="0">scegli...</option>';
    			
    				while($row = mysql_fetch_array($res))
    				{
    					$province .= '<option value="' . $row['id_pro'] . '">' . utf8_encode($row['nome_provincia']) . '</option>';
    				}
    				
    			return $province;
    		}
    		*/
    		public function ShowProvince()
    		{
    			$sql = "SELECT DISTINCT Cod_p, Sigla_p FROM province ORDER BY id_pro ASC";
    			$res = mysql_query($sql,$this->conn);
    			$province = '<option value="0">scegli...</option>';
    			
    				while($row = mysql_fetch_array($res))
    				{
    					$province .= '<option value="' . $row['Cod_p']  .    '">'  . utf8_encode($row['Sigla_p']) . '</option>';
    				}
    			
    			return $province;
    		}
    		
    		
    		public function ShowComuni()
    		{
    			$sql = "SELECT Provincia, comune FROM comuni WHERE Cod_s=$_POST[Cod_p]";
    			$res = mysql_query($sql,$this->conn);
    			$comuni = '<option value="0">scegli...</option>';
    			
    				while($row = mysql_fetch_array($res))
    				{
    					$comuni .= '<option value="' . utf8_encode($row['Cod_s']) . '">' . utf8_encode($row['comune']) . '</option>';
    				}
    				
    			return $comuni;
    		}
    }
    
    ?>
    il problema rimane nel postare la sigla della provincia e il comune al file insfe.php che a sua volta effettuera' l'inserimento nel db.
    cosa strana e che a seguito di questo codice :
    codice:
    <tr><td>Seleziona la Provincia:</td><td>
    			<select id="province" name="prov">
    			<?php echo $opt->ShowProvince(); ?>
    			</select>
    "prov" assume il valore della codifica della sigla della provincia ossia invia il valore 7 anziche' "LU"
    grazie per l'attenzione.

  6. #6
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    assicurati prima che le query select (comuni e province) funzionino a dovere e che quindi le visualizzino correttamente i relativi nomi di comuni e delle province dopo aver selezionato in cascata reg->prov->elenco comuni

  7. #7
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    ho controllato le query select (comuni e province) e funzionano bene; comunque sono riuscito a postare il comune sostituendo a :
    codice:
    $comuni .= '<option value="'  . utf8_encode($row['Cod_s']) .  '">' . utf8_encode($row['comune']) . '</option>';
    questa:
    codice:
    $comuni .= '<option value="' . utf8_encode($row['comune']) . '">' . utf8_encode($row['comune']) . '</option>';
    quindi deduco che è la funzione --> return $comuni del file select.class.php che restituisce i valori a
    codice:
    <tr><td>Seleziona la Provincia:</td><td>
              <select id="province" name="provincia">
              <?php echo $opt->ShowProvince(); ?>
              </select>
    <tr><td>Seleziona il Comune:</td><td>
    	<select id="comuni" name="comune">
                 <option>Scegli...</option>
    	</select>
    ma riesco a postare solo un valore e pertanto vi sarei grato se potreste darmi una soluzione in quanto per la provincia riesco a postare solo la codifica numerica della sigla della provincia grazie

  8. #8
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    in attesa che qualcuno possa darmi una soluzione migliore ho risolto il problema riconvertendo semplicemente, nel file preposto all'inserimento dei dati nel DB, "insfe.php", il valore numerico codificato della sigla della provincia.
    quindi:
    return $province;
    mi restituisce il valore numerico della sigla della provincia es. LU -- > 12
    in insfe.php con una SELECT trovo la corrispondenza e riconverto il valore 12 in LU:
    $Sigla_rest=$_REQUEST[provincia]; -> valore restituito da return $province
    $qu="SELECT Sigla_pro FROM sigle_pro WHERE Cod_prov=$Sigla_rest"; -> sigla trovata
    che sarà inserita con successo nel DB.
    Sarebbe interessante, ovviamente, trovare la fattibilità di inviare tramite return $province
    del file select.class.php oltre la codifica numerica della sigla della provincia anche altri dati del DB tra cui la sigla della provincia, ottimizzando cosi tutto il codice.
    grazie per l'attenzione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.