Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP]Jak zapisać dynamiczny formularz do bazy?
Forum PHP.pl > Forum > Przedszkole
snutka
Mam formularz złożony ze statycznych pól tekstowych i pól dodawanych dynamicznie (javascriptem).

Jak go zapisać do bazy danych?
1) do dwóch tabel?
2) słyszałam o serializacji, ale nie za bardzo umiem ją tu zastosować
3) jak się więc zapisuje (i odczytuje) dynamicznie dodawane pola formularza?

Oto kod:

java script:

<script language="javascript"><!--
var g_guild_index=1;
function addguild() {
var html = "";
html +=
'<tr>' +
' <td><table width="100%" border="0">' +
' <tr>' +
' <td><div class="form-info" align="left">Fornavn:</div></td>' +
' <td><input type="text" class="form-info" name="fornavn_other['+g_guild_index+']" id="fornavn_other_'+g_guild_index+'" /></td>' +
' </tr>' +
' <tr>' +
' <td><div class="form-info" align="left">Etternavn:</div></td>' +
' <td><input type="text" class="form-info" name="etternavn_other['+g_guild_index+']" id="etternavn_other_'+g_guild_index+'" /></td>' +
' </tr>' +
' <tr>' +
' <td><div class="form-info" align="left">F&oslash;dselsnummer:</div></td>' +
' <td><input type="text" class="form-info" name="fodselsnummer_other['+g_guild_index+']" id="fodselsnummer_other_'+g_guild_index+'" /></td>' +
' </tr>' +
' <tr>' +
' <td><div class="form-info" align="left">Nasjonalitet:</div></td>' +
' <td><input type="text" class="form-info" name="nasjonalitet_other['+g_guild_index+']" id="nasjonalitet_other_'+g_guild_index+'" /></td>' +
' </tr>' +
' <tr>' +
' <td><div class="form-info" align="left">Adresse (ikke postboks):</div></td>' +
' <td><input type="text" class="form-info" name="adresse_other['+g_guild_index+']" id="adresse_other_'+g_guild_index+'" /></td>' +
' </tr>' +
' <tr>' +
' <td><div class="form-info" align="left">Andel aksjer i prosent:</div></td>' +
' <td><input type="text" class="form-info" name="andel_other['+g_guild_index+']" id="andel_other_'+g_guild_index+'" /></td>' +
' </tr>' +
' </table></td>' +
'</tr>'+
'<tr><td></td></tr>';

newElem = document.getElementById("newguild");
newElem.innerHTML += html;
g_guild_index++;
}
//--></script>


html:

<form action="bestillingsskjema-bestill.html" method="post">

<br/><p><b>Kontakt informasjon</b></p>
<div class="form-info">Kontakt telefon:</div>
<input type="text" name="kontakt_telefon" class="form-info"/>

<div class="form-info">Kontakt e-post:</div>
<input type="text" name="kontakt_epost" class="form-info"/>



<br/><p><b>Fyll in firmanavn i rubrikken under</b></p>
<div class="form-info">Firmanavn:</div>
<input type="text" name="firmanavn" class="form-info"/>
<br/><br/>


<div class="text-header">Daglig leder</div>
<p>Fyll inn informasjon om daglig leder</p>
<div class="form-info">Fornavn:</div>
<input type="text" name="fornavn" class="form-info"/>

<div class="form-info">Etternavn:</div>
<input type="text" name="etternavn" class="form-info"/>

<div class="form-info">F&oslash;dselsnummer:</div>
<input type="text" name="fodselsnummer" class="form-info"/>

<div class="form-info">Nasjonalitet:</div>
<input type="text" name="nasjonalitet" class="form-info"/>

<div class="form-info">Gateadresse (ikke postboks):</div>
<input type="text" name="gateadresse" class="form-info"/>

<div class="form-info">Poststed:</div>
<input type="text" name="poststed" class="form-info"/>

<div class="form-info">Postnummer:</div>
<input type="text" name="postnummer" class="form-info"/>
<br/>



<br/><div class="text-header">Eier/-e</div>
<p>Fyll inn informasjon om eier. Kan v&aelig;re en eller flere personer</p>
<div class="form-info">Fornavn:</div>
<input type="text" name="fornavn_eier" class="form-info"/>

<div class="form-info">Etternavn:</div>
<input type="text" name="etternavn_eier" class="form-info"/>

<div class="form-info">F&oslash;dselsnummer:</div>
<input type="text" name="fodselsnummer_eier" class="form-info"/>

<div class="form-info">Nasjonalitet:</div>
<input type="text" name="nasjonalitet_eier" class="form-info"/>

<div class="form-info">Adresse (ikke postboks):</div>
<input type="text" name="adresse_eier" class="form-info"/>

<div class="form-info">Andel aksjer i prosent:</div>
<input type="text" name="andel_eier" class="form-info"/>



<tr>
<td><div class="form-info">Fornavn:</div></td>
<td><input type="text" class="form-info" name="fornavn_other[0]" id="fornavn_other_0" class="form-info"/></div></td>
</tr>
<tr>
<td><div class="form-info" align="left">Etternavn:</div></td>
<td><input type="text" class="form-info" name="etternavn_other[0]" id="etternavn_other_0" /></td>
</tr>
<tr>
<td><div class="form-info" align="left">F&oslash;dselsnummer:</div></td>
<td><input type="text" class="form-info" name="fodselsnummer_other[0]" id="fodselsnummer_other_0" /></td>
</tr>
<tr>
<td><div class="form-info" align="left">Nasjonalitet:</div></td>
<td><input type="text" class="form-info" name="nasjonalitet_other[0]" id="nasjonalitet_other_0" /></td>
</tr>
<tr>
<td><div class="form-info" align="left">Adresse (ikke postboks):</div></td>
<td><input type="text" class="form-info" name="adresse_other[0]" id="adresse_other_0" /></td>
</tr>
<tr>
<td><div class="form-info" align="left">Andel aksjer i prosent:</div></td>
<td><input type="text" class="form-info" name="andel_other[0]" id="andel_other_0" /></td>
</tr>
</td>
</tr>
<br/>
<tr>
<td colspan="2" align="left"><div style="width:100%; position:relative; padding:0; margin:0" id="newguild">
</div></td>
<tr>

<td><p class="bold-right" onclick="addguild()">+ Legg til ny aksjon&aelig;r</p></td>
</tr>
<br/><br/>


<p>F&oslash;r vi etablerer selskapet vil vi unders&oslash;ke for eventuelle mangler eller logiske brister. Du vil ogs&aring; motta en e-post vedr&oslash;rende styre i Norge og England, firmaadresse, bransje osv.</p>



<input type="submit" class="submit" value="Bestill" />


</form>
Fifi209
Kolego najpierw zacznij używać BBCode, dwa czytamy tematy podklejone, aby poprawnie zadać pytanie.
muk4
@fifi209
koleżanko tongue.gif

@topic
Wklejenia kodu który zajmuje 3 strony odstrasza - w taki sposób nikt Ci nie pomoże.
thomson89
Jak na razie, mogę tylko zapytać: czy znasz zakres, tej dynamiki? Jeżeli wiesz, jakie maksymalnie typy pól mogą być, możesz skonstruować skrypt który za pomocą ifów i switchy (ewentualnie) będzie dodawał to co jest.

Innym rozwiązaniem, jest za każdym dodaniem pola, dodać gdzieś instrukcje dla php jakie pola są dodane i ile ich jest. Choćby, w takiej postaci:
Kod
text:nazwa:1,text:imie:1,select:imie:2


Pozwoli ci to odczytać, np. explode te instrukcje i odebrać odpowiednie pola.

Rozwiązań jest dużo a ogranicza cię jedynie twoja kreatywność.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.