Dynamisk oprettelse af svarmuligheder.
Jeg er i gang med at lave en side, hvor man skal kunne oprette nogle afstemninger.I den forbindelse skal man kunne oprette alle de svarmuligheder man har lyst til.
Jeg har som sådan fået det til at virke, men hvis jeg fx opretter 3, skriver noget tekst i dem, og tilføjer en 4. - så sletter den teksten i de første tre, fordi jeg piller ved innerHTML for den div de ligger i.
Nogen der har forslag til hvordan jeg undgår det?
Her er mit script som det ser ud p.t.:
<table border="1" cellpadding="0">
<tr>
<td>Spørgsmål (Enkeltsvar, radioknapper):</td>
</tr><tr>
<td><textarea id="sporgsmal" name="sporgsmal" style="width: 100%;"></textarea></td>
</tr><tr><td colspan="2"> <!-- spacer //--></td></tr><tr>
<td>Rapport-email: (valgfri)</td>
</tr><tr>
<td><input type="text" name="email" id="email" value=""></td>
</tr><tr><td colspan="2"> <!-- spacer //--></td></tr><tr>
<td>Svarmuligheder:</td>
</tr><tr>
<td>
<input type="text" name="svar" id="svar" value="">
<div id="svar_div"></div>
</td>
</tr><tr>
<td><button type="button" onclick="add_answer('');">Tilføj en svarmulighed</button></td>
</tr><tr><td colspan="2"> <!-- spacer //--></td></tr><tr>
<td><button type="button">Gem spørgsmål</button></td>
</tr>
</table>
<script>
var q = 0; //counter, der holder styr på hvor mange spørgsmål der er.
function add_answer(txt) {
var html = ""
q++;
html = html + "<div id='svar_div_"+q+"'><table border='1'><tr>";
html = html + "<td width='300'><input type='text' name='svar_"+q+"' id='svar_"+q+"' value='"+txt+"'></td>";
html = html + "<td><input type='text' name='slet_"+q+"' id='slet_"+q+"' value='nej'></td>";
html = html + "<td><button type='button' onclick='del_answer("+q+");'>Slet</button></td>";
html = html + "</tr></table></div>";
document.getElementById('svar_div').innerHTML = document.getElementById('svar_div').innerHTML + html;
}
function del_answer(nr) {
document.getElementById('slet_'+nr).value='ja';
document.getElementById('svar_div_'+nr).style.display = 'none';
}
function init_answers() {
var questions = document.getElementById('svar').value;
var arrQuestions = new Array();
var i;
if (questions.indexOf('¤') >= 0) {
//der er mere end ét spørgsmål i forvejen, opret array via split ved symbolet ¤:
arrQuestions = questions.split('¤');
} else {
//der er kun ét (eller ingen) spørgsmål i forvejen.
arrQuestions[0] = questions;
}
for(var i=0; i<arrQuestions.length; i++) {
add_answer(arrQuestions[i]);
}
}
init_answers(); //initialiser evt. eksisterende svarmuligheder ved load.
</script>
