Select e Checkbox in cascata.

  • Creatore Discussione Creatore Discussione holyjoe
  • Data di inizio Data di inizio
Ho fatto ma non ho risolto.

Quindi hai _select.php cosi:
PHP:
<?php

$conn = mysql_connect("localhost","username","password");   
$db = mysql_select_db("database1");  

include_once '_select.class.php';
$opt = new SelectList();

if(isset($_REQUEST['id']))
{
    echo $opt->MostraAttivita($_REQUEST['id']);
    
    die;
}



?>

e non va giusto?

e se fai cosi:
PHP:
<?php

$conn = mysql_connect("localhost","username","password");   
$db = mysql_select_db("database1");  

include_once '_select.class.php';
$opt = new SelectList();

if(isset($_REQUEST['id']))
{
    $sql="SELECT * FROM attivita WHERE idcommessa='".intval($_REQUEST['id'])."'";
	$result=mysql_query($sql);
	while($row = mysql_fetch_array($result))
	{
		echo "nome attivià = ", $nomeattivita = $row['nome'], "<br>";
		echo "id attività = ", $idattivita = $row['id'], "<br>";  
	}  
    die();
}



?>


e vai su _select.php?id=1
 
ti posto di nuovo i 3 file con le modifiche effettuate.

_commessa.php:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
	<meta http-equiv="content-type" content="text/html charset=utf-8">
	

	<script type="text/javascript" src="jquery-1.4.1.js"></script>

	
	<title>prova commesse -> attivitÃ*</title>
	
	<script type="text/javascript">
	$(document).ready(function(){

		var scegli = '<option value="0">Scegli...</option>';
		var attendere = '<option value="0">Attendere...</option>';
		
		$("select#attivita").html(scegli);
		$("select#attivita").attr("disabled", "disabled");
		
		
		
		$("select#commessa").change(function(){ 
            $("select#attivita").html(attendere); 
            var commessa = $("select#commessa").val(); 
             
            $("select#attivita").attr("disabled", "true"); 
             
             
            $.post("_select.php", {id:commessa}, function(data){ 
                $("select#attivita").removeAttr("disabled");  
                $("select#attivita").html(data);     
            }); 
        });
        
		
		$("select#attivita").change(function(){
            
            $("select#attivita").html(attendere);
            var attivita = $("select#attivita option:selected").attr('value');
            $.post("_select.php", {id:attivita}, function(data){
                
                $("select#attivita").html(data);    
            });
		});
	
		
	});
	
	</script>
</head>





<?php


$conn = mysql_connect("localhost", "fstanzione", "Napoli14");  
$db = mysql_select_db("dcubo3-2"); 

// Check connection
if (mysql_error())
	{
   	 echo "<font color='red'>Connessione al database fallita: </font>" .mysql_error(). "<br>";
	 exit();
  	}
else
	{
	echo "<font color='green'>Connesso al database. </font><br><br>";
	} 


$sql="SELECT * FROM attivita WHERE idcommessa='1'";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result))
{
	echo "nome attivià = ", $nomeattivita = $row['nome'], "<br>";
	echo "id attività = ", $idattivita = $row['id'], "<br>";	
	
}


include_once '_select.class.php';
$opt = new SelectList();
?>
<body>
	<div id="container">
	
	<h1>commesse - attivitÃ*</h1>
	<h2>prova</h2>
	
	
		<form action="?" id="myform">
			Seleziona la commessa:<br />
			<select id="commessa">
				<?php echo $opt->MostraCommesse(); ?>
			</select>
			<br /><br />
		
			Seleziona attività*:<br />
			<checkbox id="attivita">
			
			<input name="Checkbox1" type="checkbox" />
			</select>
			<br /><br />
		
			
			
		</div>
	</form>


</body>
</html>

_select.php:
PHP:
<?php 

include_once '_select.class.php';  
$opt = new SelectList();  

if(isset($_REQUEST['id']))  
{  
    echo $opt->MostraAttivita($_REQUEST['id']);  
      
    die;  
} else die('NON ARRIVA');   



?>

_select.class.php:
PHP:
<?php

$conn = mysql_connect("localhost", "fstanzione", "Napoli14");  
$db = mysql_select_db("dcubo3-2"); 

// Check connection
if (mysql_error())
	{
   	 echo "<font color='red'>Connessione al database fallita: </font>" .mysql_error(). "<br>";
	 exit();
  	}
else
	{
	echo "<font color='green'>Connesso al database. </font><br><br>";
	}


class SelectList
{
	
		public function MostraCommesse()
		{
			$sql = "SELECT * FROM commesse";
			$res = mysql_query($sql);
			$commessa = '<option value="0">scegli la commessa</option>';
			
				while($row = mysql_fetch_array($res))
				{
					$commessa .= '<option value="' .$row['id'] . '">' .$row['nome'] .'</option>';
				}
				
			return $commessa;
		}
		
		
		public function MostraAttivita($iId)  
        {  
            $sql = "SELECT * FROM attivita WHERE idcommessa=".intval($iId);  
            $res = mysql_query($sql) or die($sql.' '.mysql_error());  
            $attivita = '<option value="0">scegli...</option>';  
              
                while($row = mysql_fetch_array($res))  
                {  
                    $attivita .= '<option value="' . $row['id'] . '">' . utf8_encode($row['nome']) . '</option>';  
                      
                }  
                  
            return $attivita;  
        }   

}	

?>
 
ok su class devi cambiare questo per adattare al varchar del campo idcommessa
cambia questo:
PHP:
            $sql = "SELECT * FROM attivita WHERE idcommessa=".intval($iId);   
            $res = mysql_query($sql) or die($sql.' '.mysql_error());
con

PHP:
            $sql = "SELECT * FROM attivita WHERE idcommessa= '".intval($iId)."'";   
            $res = mysql_query($sql) or die($sql.' '.mysql_error());

se ancora non funziona prova a cambiare cosi _select.php per verificare


PHP:
<?php 

$conn = mysql_connect("localhost","username","password");    
$db = mysql_select_db("database1");   

include_once '_select.class.php'; 
$opt = new SelectList(); 

if(isset($_REQUEST['id'])) 
{ 
    $sql="SELECT * FROM attivita WHERE idcommessa='".intval($_REQUEST['id'])."'"; 
    $result=mysql_query($sql); 
    while($row = mysql_fetch_array($result)) 
    { 
        echo "nome attivià = ", $nomeattivita = $row['nome'], "<br>"; 
        echo "id attività = ", $idattivita = $row['id'], "<br>";   
    }   
    die(); 
} 



?>
e vai da browser su _select.php?id=1

fammi sapere
 
Ora sembra che entri nell'IF del _select.php.
Questo è il risultato ottenuto:

------------------
Connesso al database.

Connesso al database.

nome attivià = Attività 11
id attività = 1
nome attivià = Attività 12
id attività = 2
------------------
 
Perfetto
ora _select.php facciamola diventare cosi:
PHP:
<?php
$conn = mysql_connect("localhost","username","password");    
$db = mysql_select_db("database1");   
include_once '_select.class.php';   
$opt = new SelectList();   

if(isset($_REQUEST['id']))   
{   
    echo $opt->MostraAttivita($_REQUEST['id']);   
       
    die;   
} else die('NON ARRIVA');

Fammi sapere cosa stampa quando vai da browser su _select.php?id=1
 
La pagina _select.php non mi fa vedere nulla ma entra nell'IF.
La pagina _commessa.php non è cambiata: seleziono la commessa ma non escono le attività.
 
La pagina _select.php non mi fa vedere nulla ma entra nell'IF.
La pagina _commessa.php non è cambiata: seleziono la commessa ma non escono le attività.

Hai cambiato _select.class.php?
I log di php danno errori?
sostituisci
PHP:
echo $opt->MostraAttivita($_REQUEST['id']);
con
PHP:
var_dump($opt->MostraAttivita($_REQUEST['id']));
 

Discussioni simili