PDA

View Full Version : [PHP - JQUERY] Aggiungere nuovo campo SELECT


Ludo237
07-01-2011, 19:23
Ciao ragazzi.

sto sviluppando un babbo_form :D

ho 3 campi

nome (text)
cognome (text)
gruppi (select)


vabbe i primi due nessun problema però sul terzo ho piazzato un iconcina ( + ) di fianco alla select e vorrei che ogni volta che si preme questo + compaia sul form una nuova select con gli stessi valori della seconda , e poi una volta selezionato e compilato il tutto si riuscisse a trasferire anche la value della select generata dal +

mi hanno detto che si puo fare in Jquery ma non ho ancora capito come :muro:

dojolab
07-01-2011, 19:33
mi hanno detto che si puo fare in Jquery ma non ho ancora capito come :muro:

Si, JavaScript è l'unica alternativa (al ricaricaricamento di tutta la pagina, form e mantenimento dei dati nel modulo); come fare? JQuery ti viene incontro.

Leggiti la documentazione sul metodo .append() o .html() di JQuery (se non ricordo male devi usare .append()). Ci puoi incollare il "pezzo" di html da aggiungere con relativi name e value.

:D

Ludo237
07-01-2011, 21:32
Si, JavaScript è l'unica alternativa (al ricaricaricamento di tutta la pagina, form e mantenimento dei dati nel modulo); come fare? JQuery ti viene incontro.

Leggiti la documentazione sul metodo .append() o .html() di JQuery (se non ricordo male devi usare .append()). Ci puoi incollare il "pezzo" di html da aggiungere con relativi name e value.

:D

Ok grazie

Ora provo , e se qualcosa non mi torna posto il codice cosi si analizza l'errore perchè ora di errori non ce ne sono , però vabbe .. anzi no ecco il codice


<?php
require 'classi/inc.config.php' ;
require 'classi/inc.login.php' ;

// Dati sessione richiesti
$idutente = $_SESSION['idutente'] ;
// Fine dati sessione richiesti
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

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

<title></title>

<link href="stili/main.style.css" rel="stylesheet" type="text/css" />
<link href="javascript/jquery/css/south-street/jquery-ui-1.8.7.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="javascript/jquery/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="javascript/jquery/js/jquery-ui-1.8.7.custom.min.js"></script>

</head>

<body>

<div class="container">

<div class="header">

<?php include_once 'include_sito/testata.php' ; ?>

</div>

<?php include_once 'include_sito/menu_principale.php' ; ?>
<?php include_once 'include_sito/sottomenu/sottomenu_rubrica.php' ; ?>

<div class="sidebar1">
<?php
$sql_conta_rubrica = "SELECT COUNT(*) AS clienti
FROM rubrica
INNER JOIN utenti ON utenti.id_utente = rubrica.idutente
WHERE rubrica.idutente = '" . $idutente . "' " ;

$risultato_conteggio = mysql_query($sql_conta_rubrica) or die(mysql_query() ) ;

$numero = mysql_fetch_array($risultato_conteggio) ;
?>
Totale numeri in rubrica : <?php echo $numero['clienti'] ; ?>.
</div>

<div class="content">

<h3 align="center">Rubrica di <?php echo $_SESSION['cognome'] . " " . $_SESSION['nome'] ; ?></h3>

<table id="form_inserimento">

<form name="inserimento" action="inserisci-contatto_check.php" method="post">
<input type="hidden" name="datainserimento" value="<?php echo date("d/m/Y") ; ?>" />
<tr>
<td>Nome: </td><td><input type="text" name="nome" value="" /></td>
</tr>
<tr>
<td>Cognome: </td><td><input type="text" name="cognome" value="" /></td>
</tr>
<tr>
<td>Data di nascita: </td><td><input type="text" name="datanascita" id="datanascita" value="" readonly="readonly" /></td>
<script>
$(document).ready(function(){
$('#datanascita').datepicker(
{
changeMonth: true,
changeYear: true,
dateFormat: 'dd/mm/yy',
dayNames: ['Domenica', 'Lunedi', 'Martedi', 'Mercoledi', 'Giovedi', 'Venerdi', 'Sabato'],
dayNamesMin: ['Do', 'Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'],
firstDay: 1,
monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Gun','Lug','Aug','Set','Ott','Nov','Dec']
});
});
</script>
</tr>
<tr>
<td>Cellulare: </td><td><input type="text" name="cellulare" value="" /> Formato: 1234567890</td>
</tr>
<tr>
<td>Telefono: </td><td><input type="text" name="telefono" value="" /> Formato: 1234567890</td>
</tr>
<tr>
<td>E-Mail: </td><td><input type="text" name="email" value="" /> Formato: [email protected]</td>
</tr>
<tr>
<td>Gruppo:</td>
<td><?php
$sql_seleziona_gruppo = "SELECT * FROM gruppi WHERE idutente = '" . $idutente . "' " ;

$risultato_selezione = mysql_query($sql_seleziona_gruppo) or die ( mysql_error() ) ;
?>
<select name="gruppo">
<option value="">Scegli il gruppo</option>
<?php
while( $row = mysql_fetch_array($risultato_selezione) )
{
echo '<option value="' . $row['id_gruppo'] . '">' . $row['nome_gruppo'] . '</option>' ;
}
?>
</select>
</td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Aggiungi" /><input type="reset" name="reset" value="Cancella" /></td>
</tr>
</form>

</table>

</div>

<?php include_once 'include_sito/footer.php' ; ?>

</div>

</body>

</html>


L'ultimo input , la select ecco quella dev'essere "moltiplicata" ...

dojolab
08-01-2011, 09:38
Ok grazie

L'ultimo input , la select ecco quella dev'essere "moltiplicata" ...

La select con name "gruppo"?

Ludo237
09-01-2011, 12:06
La select con name "gruppo"?

Yes sir.

è proprio quella perchè volevo far si che se uno volesse appartenere a piu gruppi potesse farlo tramite questa funzionalità (nel db è gia tutto calcolato)

dojolab
09-01-2011, 12:54
Yes sir.

è proprio quella perchè volevo far si che se uno volesse appartenere a piu gruppi potesse farlo tramite questa funzionalità (nel db è gia tutto calcolato)

Beh, se non ho capito male tu devi replicare N volte quella select giusto?
Mi pare che con JQuery esista un metodo per accederdere ad essa:

$('input[name=NOME_SELECT).QUIILMETODO [...]

Leggere le option e poi ricostruirla sotto (tramite .html() o .append()).
Adesso non uso JQuery da un pò quindi sintassi ecc saranno sicuramente cannati :D però la logica è questa.

Al "+" associ una funzione JS

function add_new_html_code() { ... // JQUERY

:D

Ludo237
09-01-2011, 23:55
Non dev essere perforza in jquery , però è il primo che mi è venuto in mente (ed è anche l'unico che credo possa farlo)

Ludo237
11-01-2011, 08:44
Nessuno ? :( :( :cry: