PDA

Visualizza la versione completa : recupero dati form stesso nome


djjunior
19-03-2020, 14:44
Salve
ho un form dove si creano dinamicamente dei campi con uguale nome tipo:


<input type="text" name="nome[]" size="43" value=""/>
<input type="text" name="nome[]" size="43" value=""/>
<input type="text" name="nome[]" size="43" value=""/>

Vorrei recuperare questi dati in questo modo in un unico campo (NOMI) che salverò nel db, con come separatore il carattere ^, per esempio:
NOMI: "gianni^francesco^nicola"
Come posso fare?
Grazie 1000

Vincent.Zeno
19-03-2020, 14:50
i dati provenienti da campi con lo stesso nome vengono trasmessi e recepiti con una virgola separatrice, ti sarà sufficiente fare un replace della virgola col carattere da te scelto.

djjunior
19-03-2020, 15:12
Grazie Vincent zeno, ma a me dal form mi viene solo il primo campo compilato e non gli altri aggiunti, forse sbaglio qualcosa? Grazie
Uso questo script per l'aggiunta di campi dinamici:
https://www.codexworld.com/add-remove-input-fields-dynamically-using-jquery/

(https://www.codexworld.com/add-remove-input-fields-dynamically-using-jquery/)

Vincent.Zeno
19-03-2020, 16:16
ho testato lo script in questione e problemi evidenti non ne da.
visto il contesto, salvataggio dei dati senza necessita di creare un array, darei un nome al campo senza parentesi quadre. ma è solo una questione di igiene, funziona ugualmente con le parentesi.
non so dove tu ti stia incartando.
magari posta la sintesi di tutto il codice in questione...

djjunior
19-03-2020, 18:31
pagina del form:


<form name="info" method="post" action="mod_form.asp" >
<td bgcolor="#F5F5F5" height="50">
<p align="center"><font color="#5F3A3B"><b>MODIFICA FORM </b></font></td>
</tr>
<tr>
<td>
<p align="center">
<font face="Tahoma" size="2">Titolo Form</font>
<p align="center"><input type="text" name="titolo_form" size="93" value="<%=rs.fields("titolo_form")%>"></p>

</td>
</tr>
<tr>
<td>
<p align="center"><font face="Tahoma" size="2"><br>
Date</font></p>


<div class="field_wrapper" align="center">
<div>
<input type="text" name="forma" size="43" value=""/>
<a href="javascript:void(0);" class="add_button" title="Add field"><img src="images/add-icon.png" width="20"/></a><br><br>
</div>
</div>
</td>
</tr>
<tr>
<td width="930">
<p align="center">
<input type="submit" value="Salva" name="submit"></form>
</td>
</tr>
</table></td>
</tr>
</table>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/bootstrap.js"></script>
<!-- Place this tag in your head or just before your close body tag. -->
<script src="https://apis.google.com/js/platform.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var maxField = 20; //Input fields increment limitation
var addButton = $('.add_button'); //Add button selector
var wrapper = $('.field_wrapper'); //Input field wrapper
var fieldHTML = '<div><input type="text" name="forma" size="43" value=""/><a href="javascript:void(0);" class="remove_button">&nbsp;<img src="images/remove-icon.png"/></a><br><br></div>'; //New input field html
var x = 1; //Initial field counter is 1

//Once add button is clicked
$(addButton).click(function(){
//Check maximum number of input fields
if(x < maxField){
x++; //Increment field counter
$(wrapper).append(fieldHTML); //Add field html
}
});

//Once remove button is clicked
$(wrapper).on('click', '.remove_button', function(e){
e.preventDefault();
$(this).parent('div').remove(); //Remove field html
x--; //Decrement field counter
});
});
</script>

pagina: mod_form.asp



titolo_form = request.form("titolo_form")
forma = request.form("forma")

sql = "SELECT * FROM salva where ID = '1' "
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3

rs.Fields("titolo_form") = "" & titolo_form & ""
rs.Fields("forma") = "" & forma & ""

rs.update

Vincent.Zeno
19-03-2020, 19:08
lo script sta meglio in head, se puoi mettilo lì.

dove sta il replace?
ricorda che oltre alla virgola viene aggiunto anche uno spazio: "a, b"
e se invii campi vuoti lo stesso si aggiungono virgole e spazi: "a, b, "

djjunior
19-03-2020, 19:20
ho spostato lo script nell'head, ma a parte il replace, volevo farti notare che anche senza replace dovrei comunque ricevere i dati così per 3 campi:

gino, carlo, giovanni,

cosa che non avviene ecco perchè ti ho postato il codice senza il replace, io continuo a ricevere sempre e solo il primo: gino
quelli aggiunti li aggiungo, li compilo ma niente, come se il form non li vedesse

Vincent.Zeno
19-03-2020, 19:26
stampali a video e controlla che arrivino

Vincent.Zeno
19-03-2020, 19:33
ho provato anche la scrittura su db e non presenta problemi

djjunior
19-03-2020, 19:33
già provato, ma non arriva nulla

Loading