Nasıl dinamik bir form giriş alanları ekleyebilir?

5 Cevap php

Ben bir web programcısı değilim, ama ben kullanıcı noktaları bir dizi (x, y, z) girebilirsiniz ama kullanıcı kaç bilmiyorum bir formu vardır, basit bir web uygulaması oluşturma ediyorum girmek için gidiyor. Çirkin görünür çünkü olası maksimum (belki 100?) Tahmin ve formda 100 alanları koymak istemiyorum. Kullanıcı sunucuyu temas etmeden veri girdiğinde daha fazla alanlar (veya göstermek alanları) eklemek için en kolay yolu nedir.

Şu anda ben sadece html kullanarak & ediyorum php, ama ben javascript gerekecek bunu varsayıyorum?

Kullanıcı verileri girerken anda benim kod ben başka bir satır görünmesini istiyorsanız, bu gibi görünüyor.

<form action="edit.php" method="post"> 
  <table border=1> 
    <tr> 
      <td> 
      <td>X
      <td>Y
      <td>Z
    </tr> 
    <tr> 
      <td>1</td> 
      <td><input type=text name=x1 size=10 value="0.4318"></td> 
      <td><input type=text name=y1 size=10 value="0.0000"></td> 
      <td><input type=text name=z1 size=10 value="0.1842"></td> 
    </tr> 
    <tr> 
      <td>2</td> 
      <td><input type=text name=x2 size=10 value="0.4318"></td> 
      <td><input type=text name=y2 size=10 value="0.0000"></td> 
      <td><input type=text name=z2 size=10 value="-0.1842"></td> 
    </tr> 
    <tr> 
      <td>3</td> 
      <td><input type=text name=x3 size=10 value="-0.3556"></td> 
      <td><input type=text name=y3 size=10 value="0.0000"></td> 
      <td><input type=text name=z3 size=10 value="0.1636"></td> 
    </tr> 
    ... I want more to appear here...
  </table> 
  <button name="submit" value="submit" type="submit">Save</button> 
</form>

Herhangi bir fikir kolay yolu? Teşekkürler ...

5 Cevap

JQuery ve append yeni girdiler kullanmak istiyorsunuz.

Büyük olasılıkla, evet javascript kullanmak zorunda olacak. Bunu kullanmak veya bir referans olarak kullanarak kendi yazabilirsiniz:

http://www.mredkj.com/tutorials/tableaddrow.html

Ben benzer soemthing oluşturulan ve ben size yardımcı olacağını düşünüyorum. Ben dinamik olarak girdi alanları oluşturmak için jQuery kullanılır. Bu linki kontrol edin: Dynamically add form fields

Ne söylüyorsun sen elle giriş etiketlerini yazıyoruz ki? Yoksa bir kullanıcı düğmeyi tıklattığında ve daha fazla tablo satır ekler dinamik bir eylem istediğini söylüyorsun?

Anycase, kodunuz için, sadece bu yüzden gibi, bir döngü gerekir. Ben $ verileri veritabanından veya bir şey muhtemelen bir dizi dayalı ayarlamak istediğiniz ne olursa olsun veri olduğunu varsayalım:

<?php
for($i=0, $iMaxSize=count($data); $i<$iMaxSize; $i++)
{
?>
 <tr> 
  <td><?= $i+1 ?></td> 
  <td><input type=text name=x1 size=10 value="<?=$data[$i]['something']"></td> 
  <td><input type=text name=y1 size=10 value="<?=$data[$i]['somethingelse']"></td> 
  <td><input type=text name=z1 size=10 value="<?=$data[$i]['somethingelseagain']"></td> 
 </tr> 
<?php
} // end for 
?>

Tabii ki kopya edilemez ve yukarıda geçmiş, ama bu iyi bir başlangıç ​​noktası.

Dinamik yapıyor, sen php kullanamazsınız. Ne kullanmak istediğiniz gibi geliyor javascript ajax ve php birleşimidir.

Tüm paragraflara bazı HTML ekler.

<!DOCTYPE html>
<html>
<head>
  <style>
  p { background:yellow; }
</style>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
  <p>I would like to say: </p>
<script>
  $("p").append("<strong>Hello</`enter code here`strong>");
</script>

</body>
</html>