form con inserimento multiplo

  • Creatore Discussione Creatore Discussione akp
  • Data di inizio Data di inizio

akp

Utente Attivo
8 Giu 2015
133
0
16
buonasera, dovrei implementare in un sito l'aggiunta multipla di stringhe.
Io ho questo html per l'inserimento dei dati:
HTML:
<form method="POST" .......>
<div class="aggiungi">
<label >hobby</label>
<input type="text" name="hobby[]" required>
<button  id="aggiungi">aggiungi</button>
</div>
<button>salva</button>
</form>

Ho questo javascript che mi aggiunge dinamicamente altri input nel form:
Codice:
$("#aggiungi").click(function(event){
  var aggiungi = $('<input type="text" name="hobby[]" required>');
  $(".aggiungi").append(aggiungi);
});

nel php ho un po di difficolta :
PHP:
if(isset($_POST['hobby'])){
  foreach ($_POST['hobby'] as $hobbys) {
    $hobbys = mysqli_real_escape_string($connessione,trim($_POST['hobby']));
  }
}
non riesco a procedere con la query per l'inserimento nel database..
qualcuno sa spiegarmi come potrei implementarla?
 
ciao
puoi provare così
PHP:
<?php
//.....
if(isset($_POST['hobby'])){
  foreach ($_POST['hobby'] as $hobbie) {
    $hobbys[] = mysqli_real_escape_string($connessione,trim($hobbie));//$hobbys è un array
  }
  print_r($hobbys);//per vederlo o var_dump($hobbys)
}  
//poi usi l'array $hobbys dove/come ti serve
?>
oppure
PHP:
<?php
function trim_escapa($con,$post){
	return mysqli_real_escape_string($con,trim($post));
}
//....
if(isset($_POST['hobby'])){
	$hobbys = array_map("trim_escapa", $connessione, $_POST['hobby']);//$hobbys è un array
	print_r($hobbys);//per vederlo o var_dump($hobbys)
}
//poi usi l'array $hobbys dove/come ti serve
?>
 
ho preso spunto dal primo esempio. Prima di fare la query faccio un "implode" in modo tale che mi separa tutti i dati inseriti con la virgola.
Adesso se volessi prendere un campo specifico di quell'array come potrei fare?
esempio:
situazione array nel database = tennis,calcio,basket,nuoto
l'utente vuole sapere se è presente "basket"
adesso con una query "SELECT * FROM user WHERE hobby = '$hobby'" questa non mi troverebbe mai il campo "basket" perchè legge solo il primo valore dell'array(almeno credo).
 
ciao
da quello che ho capito nel campo hobby puoi avere es.
tennis,calcio,basket,nuoto
oppure
tennis,calcio,nuoto
un valore solo o tutte le combunazioni possibili, giusto?
immagino che la ricerca avvenga tramite un form, quindi potresti fare
PHP:
<?php
//...
$cerca=$_POST['cerca'];//con gli opportuni controlli
$query= "SELECT * FROM user WHERE hobby LIKE '%$cerca%'";
//...
?>
se l'utente cerca es. basket la query esttrarrà tutti i record che nel campo hobby hanno la parola basket

scusa avevo fatto un errore di copy/paste
 
Ultima modifica:

Discussioni simili