consiglio uso jquery php per mostrare parte di un form

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
buongiorno a tutti, non sono molto ferrato in jquery e mi trovo ad affrontare la seguente situazione. In un db ho memorizzato il nome dei vari utenti ad ogni utente è associato il campo autoconsumo che può assumere i valori SI - NO.
Ora avrei pensato ad un form che tramite una select mi fa scegliere il nome dell utente (tramite php) va tutto bene finche devo affrontar eil seguente passo: mostrare gli elementi del form successivi che sono differenti a secondo del valore autoconsumo si - no.
Accetto consigli di tutti i tipi.

Grazie in anticipo
 

ncastelletti

Nuovo Utente
23 Giu 2014
9
0
0
buongiorno a tutti, non sono molto ferrato in jquery e mi trovo ad affrontare la seguente situazione. In un db ho memorizzato il nome dei vari utenti ad ogni utente è associato il campo autoconsumo che può assumere i valori SI - NO.
Ora avrei pensato ad un form che tramite una select mi fa scegliere il nome dell utente (tramite php) va tutto bene finche devo affrontar eil seguente passo: mostrare gli elementi del form successivi che sono differenti a secondo del valore autoconsumo si - no.
Accetto consigli di tutti i tipi.

Grazie in anticipo
Provo a fare qualcosa anche se mi servirebbe del codice per vedere..

Allora nel form html dai a si il valore 0 e a no il valore 1

HTML:
<h1> Autoconsumo </h1>
<label for="si"><b>Sì</b></label>
<input type="radio" name="tipo" value="0">
<label for="no"><b>No</b></label>
          <input type="radio" name="tipo" value="1">
poi nel php farai la select: " SELECT * FROM nometabella WHERE $tipo=0 ";

così poi ti prende tutti gli utenti che hanno detto si all'autoconsumo.
Poi ingegnati un po' a fare stampare quello che vuoi.
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Alla fine leggendo a destra e sinistra credo di dovermi appoggiare a jquery e php. Ho il seguente codice


HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>......</title>

<!-- add styles -->
<link href="css/ui-lightness/jquery-ui-1.10.4.custom.min.css" rel="stylesheet" type="text/css" />

<!-- add scripts -->
<script src="js/jquery-1.10.2.js"></script>
<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
<script src="js/jquery-ui-i18n.js"></script>
 <script type="text/javascript">
$(document).ready(function() {
	$("#stoc").hide(); 
	$("#conf").hide();
	$('#id_stoc').change(function(){
	if ($(this).is(':checked')) {
			$("#stoc").show();
	} 
	else {$("#stoc").hide();}
	});
    
	$('#id_confez').change(function(){
	if ($(this).is(':checked')) {
	$("#conf").show();
	}
	else {
	$("#conf").hide();
	}
	}); 
});
//FINE DOM
 

</script>
</head>

<body>

<form action="registra.php" method="post" name="melari">
<p>
Scegli Mittente
<select name="mitt">
	<option value="" selected="selected" >Seleziona... </option>
<?php 
	include("connessione_db.php");
 	$sql = "SELECT * FROM mittente";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo "<OPTION VALUE=\"".$row["id_mitt"]."\">".$row["nome"] .$row["cognome"].   "</OPTION>";
}
?>
</select>
</p>

<p><label for="Scelta_stoccaggio"><input type="checkbox" name="id_stoc" id="id_stoc" value="si" />Seleziona per stoccare il prodotto</label></p>
<div id="stoc" >
<fieldset>
 ..............................
</fieldset>
</div>


<p><label for="Scelta_confezionamento"><input type="checkbox" name="id_confez" id="id_confez" value="si" />Seleziona per confezionare</label></p>
<div id="conf">
<fieldset>
................................	
</fieldset>	
</div>


<p>
<input type="submit" name="submit" id="submit" value="Registra"  /> 
</p>

</form>

Al caricamento della pagina i due div conteneti altri campi input del form sono nascosti ed al momento che vengono selezionate le checkbox vengono mostrate e fin qui tutto ok. Ora come dicevo nel post precedente vorrei che al momento che lutente sceglie il mittente se questo è un autoconsumatore deve disabilitarsi la checkbox confezionamento. Ho pensato di usare jQuery e php ma non riesco a capire proprio come ho provato inserendo il seguente codice subito dopo la scelta del mitt.

Codice:
<script type="text/javascript">

function verifica_autoconsumo(){
	var id_mitt=$("#mitt").val();
$.ajax({
    type:'POST',
    url:'verifica_autoconsumo.php',
    data:'id_mitt='+id_mitt,
    success: function(response){
 if(response == 0 )
{
$("#id_confez").attr(‘disabled’,‘true’);	}
}
});
};
</script>
Nella pagina autoconsumo invece ho scritto questo

PHP:
<?php 
include("connessione_db.php");
 
$mitt=$_POST['id_mitt'];
 
$query="SELECT * FROM mittente WHERE id_mitt='$mitt' AND autoconsumo='si'";

$result=mysql_query($query);

$esito = mysql_num_rows($result);

if( $esito == 0)
{
echo '1';    //AUTOCONSUMO NO
}
else
{
echo '0';	//AUTOCONSUMO SI
}
?>
 

alessiof86

Utente Attivo
6 Lug 2009
134
0
0
Scusa ma non so come aiutarti in questo caso
grazie lo stesso, io sto sempre sbattendo la testa su questo problema ho visto dalla console di firebug che al momento della chiamata ajax con il seguente codice gli viene passato id_mitt=undefined quindi non prend eil valore della select. Dove sbaglio c'è qualcuno che mi può aiutare

Codice:
function verifica_autoconsumo(){
	var id_mitt=$("select#mitt").val();
	$.ajax({
    type:'POST',
    url:'verifica_autoconsumo.php',
    data: 'id_mitt='+id_mitt,
    success: function(response){
 if(response == 1 )
{
$("#id_confez").attr("disabled", true);	}
}
});
};
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao non mi pare che la select abbia id mitt
Codice:
$("select#mitt")
dovrebbe essere cosi
Codice:
$("select[name='mitt']")
oppure metti l'id alla select