Autor Zpráva
freferg
Profil
Zdravím. Dělám takový jednoduchý projekt v php pro kamaráda a potřeboval bych upravit toto:
http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=109507

S javascriptem jsem ještě nedělal a nevim jak to udělat, tak aby se přidávalo více položek. Myšleno
Název: políčko
Popis: políčko
...
...
oddělovací čára (Tu jsem tam dostal)
Zkousel jsem taky udělat to, aby hned na začátku byl již jeden řádek vytvořen, ale nedařilo se mi nijak zavolat tu metodu.

K tomu ještě: předpokládám, že se to dá nějakého formuláře a data se pak přijmou v nějakém poli?

Díky za odpovědi. Snažil jsem se to nějak logicky udělat, ale nešlo mi to.
l564
Profil
  <HTML>
  <HEAD>
    <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Windows-1250">
    <TITLE></TITLE>
  </HEAD>
<BODY >
<input type="button" value="Dlaší položka" onClick="javascript:document.getElementById('pridani').innerHTML+='Název: <input type=text><br>Popis: <input type=text><hr>';"><BR>
<DIV ID="pridani">
<BR>
</DIV>
</HTML>
</BODY>

_es
Profil
freferg:
Pre istotu by som overil, či to funguje ([#2] l564), vo viacerých prehliadačoch.
l564
Profil
_es:
Sice nevím co zas proti mě máš, ale v Mozile, Chrome a Explorer to funguje. To jsem si odskoušel
freferg
Profil
Díky, to je dobrý. Jenom neměli by být ty edity nějak pojmenovaný. Nebo jak je potom načtu v php?
_es --> To nebude potřeba. Tohle nebude běžet nikde na netu.
l564
Profil
freferg:
Jo sory to jsem zapoměl
Název: <input type="text" name="nazev"><br>Popis: <input type="text" name="popis"><hr>
_es
Profil
l564:
Sice nevím co zas proti mě máš
Nič proti tebe nemám, no kombinácia formulárových elementov a innerHTML a nevedel som, predtým, než si to doplnil, či v tom nie je aj tabuľka, nemusí v každom prehliadači fungovať bez problémov.
freferg
Profil
Teďka jsem to trochu zkoušel. Ten zápis inputu znám, zkusil jsem to teda připsat do toho javascriptu:
<input type="button" value="Další položka" onClick="javascript:document.getElementById('pridani').innerHTML+='Výrobce: &lt;input type=text&gt;&lt;name=vyrobce&gt;&lt;br&gt;Rozmer: &lt;input type=text&gt;&lt;name=rozmer&gt;&lt;br&gt;Stav: &lt;input type=text&gt;&lt;name=stav&gt;&lt;hr&gt;';">

Pak jsem to zkoušel načíst v souboru kam jsem to odeslal, jenže proměnná $_POST["vyrobce"] mi nefunguje.

Pak jsem objevil ještě jeden problém: Po přidání další položky se smaže obsah předchozích.
TomasJ
Profil
freferg:
Ano pochopitelně, protože se upraví celkově celý blok. To už l564 odzkoušené nemá. Zato já ano. Je to jednoduché.
Zbytek už si předpokl
<html>
<head>
<script>
function AddInput()
{
  var div=document.createElement('div');
  div.innerHTML='Vyrobce: <input type="text" name="vyrobce[]"><br>Rozmer: <input type="text" name="rozmer[]"><br>Stav: <input type="text" name="stav[]"><hr>';
  document.getElementById('inputy').appendChild(div);
}
</script>
</head>
<body>
<form method="post" action="">
<div id="inputy">
Vyrobce: <input type="text" name="vyrobce[]"><br>Rozmer: <input type="text" name="rozmer[]"><br>Stav: <input type="text" name="stav[]"><hr>
</div>
<input type="button" onclick="AddInput();return false;" value="Pridat radek">
<input type="submit" value="Odeslat">
</form>
</body>
</html>

Pak budeš v PHP používat cyklus for().
<?php
$vyrobce = $_POST['vyrobce']; //Promenna je jako pole (array)
$rozmer = $_POST['rozmer']; //Promenna je jako pole (array)
$stav = $_POST['stav']; //Promenna je jako pole (array)
for($i=0;$i<count($vyrobce);$i++)
{
  $Vyrobce = $vyrobce[$i]; //Aktualni vyrobce z pole
  $Rozmer = $rozmer[$i]; //Aktualni rozmer z pole
  $Stav = $stav[$i]; //Aktualni stav z pole
  $Poradi = $i+1;
  if($Vyrobce && $Rozmer && $Stav) //Pokud maji vsechny 3 polozky obsah
  {
    echo "Polozka c. $Poradi - Vyrobce: ".$vyrobce[$i]." | Rozmer: ".$rozmer[$i]." | Stav: ".$stav[$i]."<hr>";
    /* S promennymi $Vyrobce, $Rozmer a $Stav se da pracovat zde. */
  }
}
?>

Není to odzkoušené ale mělo by to jít.

l564:
Začni se chovat normálně a nenapadej každého člena jen za to, že reaguje na tvůj příspěvek a jen sděluje že by ověřil, zda to funguje.
A ejhle, ono to funguje, ale špatně. Zdali jsi testoval výstup i v PHP?
freferg
Profil
Teďka jsem to zkoušel a vypadá to, že to funguje přesně tak jak má a další položky si tam snad už dokážu přidat sám. Takže moc díky, jseš opravdu dobrej :-).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: