Gå til innhold

Jqury: Legge til flere input fields?


Anbefalte innlegg

Hei, har startet smått med Jquery i det siste, og har tenkt å legge til flere felt, ved å trykke på en knapp. Har klart det, kjempefint, men skal få den til å legge til inni <table>' taggen.

 

 

Koden min til nå:

 

<h1>Legg til ingredienser</h1>
<?php
if(!isset($_GET['id'])) {
echo "Velg en drikk. Det gjør du ved å gå til forsiden, å og trykke på en drikk.";
}
else
{
$var = mysql_query("SELECT * FROM `tabell` WHERE `id`='".$_GET['id']."'");
$var = mysql_fetch_array($var);
echo "Du har valgt drinken ".$var['name']." ";
?>
Legg til felter:<br>
<script>
$(document).ready(function() { 
   $("#clickhere").click(function() { 
$("table.table").clone().add("<tr>
<td><input type=\"input\" name=\"navn[]\"></td>
<td><input type=\"input\" name=\"mengde[]\"></td>
</tr>").appendTo(document.body);
} );
} );
</script>
<table class="table">
<tr>
<td>Navn</td>
<td>Mengd</td>
</tr>

</table>
<input type="button" id="clickhere" value="Legg til flere inputs!" />

<?php
}
?>

 

har prøvd å endre på appendTo() og $("") og mer strekker egentlig ikke min kunnskap seg. Noen tips? :)

Lenke til kommentar
Videoannonse
Annonse

Har du prøvd å gjøre det med "vanlig" JavaScript i den annonyme funksjonen du henger på .click? F.eks:

 

for(var i = 0, ii = name.length, tr = null, table = document.getElementById("table.table"); i < ii; i++) {
  tr = document.createElement("tr");
  tr.innerHTML += '<td><input type=\"input\" name=\"' + navn[i] + '\"></td><td><input type=\"input\" name=\"' + mengde[i] + '\"></td>';
  table.appendChild(tr);
}

Lenke til kommentar

Jeg har ingen erfaring med JQuery, men ser nå at problemet sannsynligvis ligger i at du har linjebrudd i argumentet til add():

$(document).ready(function() { 
   $("#clickhere").click(function() { 
$("table.table").clone().add("<tr>
<td><input type=\"input\" name=\"navn[]\"></td>
<td><input type=\"input\" name=\"mengde[]\"></td>
</tr>").appendTo(document.body);
} );
} );

 

Skal du ha en tekststreng som strekker seg over flere linjer må du behandle hver linje som en individuell streng og legge dem sammen:

"<tr>" +
"<td><input type=\"input\" name=\"navn[]\"></td>" +
"<td><input type=\"input\" name=\"mengde[]\"></td>" +
"</tr>";

Men det enkleste er å fjerne alle linjebrudd, slik:

$("table.table").clone().add("<tr><td><input type=\"input\" name=\"navn[]\"></td><td><input type=\"input\" name=\"mengde[]\"></td></tr>").appendTo(document.body);

 

Men navn[] og mengde[], er dette JavaScript-arrays, PHP-arrays eller bare (merkelige) HTML-navn?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...