ugrás a tartalomhoz

dinamikus ürlap adatainak bevitele sql-be

shadow198811 · 2012. Jan. 15. (V), 12.54
Sziasztok!

A kérdésem az lenne, hogy van ez a javascript kódom:
<script>
function addField(fieldset){
var fields = fieldset;
var x=1;
for (i=1; i<=1; i++){
var newField = document.createElement('input');
newField.setAttribute('type', 'text');
newField.setAttribute('name', 'kat'+x);
newField.setAttribute('id', 'my_input_'+x);
fields.appendChild(newField);

x++;
}
}
</script>
<form id="kategoriak" action="feldologoz.php" method="POST">
<fieldset id="myfieldset">
<input type="text" name="kat" id="my_input"><br>
</fieldset>
<a href="javascript:addField(document.getElementById('myfieldset'))"><small>uj mezo</small></a>

<input type="submit" name="gomb" id="gombom" value="elkuld">
</form>


ehhez kellene egy olyan segiteség elsősorban, hogy hogyan tudom azt megoldani, hogy az ujonnan hozzáadott input mezők egymás alatt legyenek?Javascripthez nem nagyon értek.

A másik problémám, hogy hogyan tudom php-vel megnézni hogy az adott form-ban hány input mező van és ezeket hogyan tudom átadni a php-nek, hogy utánna beirhassam sql-be.
Előre nem tudom mennyi input mezőt fognak hozzáadni, és erre kellene még egy olyan dolog, hogy amennyiben a felhasználó több mezőt ad hozzá, de neki már nem kell több akkor az üres mezőket ne vegye figyelembe.

Már olvasgattam, hogy esetleg for ciklussal át lehetne adni az adatokat de sajnos a mikéntje még elég homályos nekem.


előre is köszönöm a segitséget.
Szabolcs
 
1

A második probléma

Hidvégi Gábor · 2012. Jan. 15. (V), 13.44
A második probléma megoldásához érdemes elolvasni a php nyelvi referenciát, azon belül is a külső forrásból érkező változók témakört.
2

egymás alatt?

Poetro · 2012. Jan. 15. (V), 14.45
hogyan tudom azt megoldani, hogy az ujonnan hozzáadott input mezők egymás alatt legyenek?

Mit értesz azon, hogy egymás alatt? Merthogy az elrendezéshez semmi köze a JavaScript-nek, az pusztán CSS kérdése.
hogyan tudom php-vel megnézni hogy az adott form-ban hány input mező van

A $_POST tömbbön kell végigmenni PHP-val mondjuk egy foreach ciklusban.
3

egymás alatt

shadow198811 · 2012. Jan. 15. (V), 15.26
Mit értesz azon, hogy egymás alatt? Merthogy az elrendezéshez semmi köze a JavaScript-nek, az pusztán CSS kérdése.



Egymás alatt azt értem, hogy nem egymás alá helyezi el a hozzáadott input mezőket hanem egymás mellé.És ezt akarom megoldani hogy egymás alatt legyenek.

A $_POST tömbbön kell végigmenni PHP-val mondjuk egy foreach ciklusban.



foreach ($_POST[""] AS $akarmi){
print "$akarmi";
}

valami hasonló dologra gondoltál vagy még kell bele valami, hogy jo is legyen?
Jelenleg a javascriptes dolog ki van véve, mert nem tudom hogyan tudom meg, hogy hány darab input metőm van benne.
Ezért most ugy van, hogy az urlap.php-n van x db input mező.
Ezeket a feldolgoz.php-ban bekérem a inputn=$_POST['namen']-el.
Ezeket az értékeket aztán beviszem egy tömmbbe és beküldöm sql-be karakterláncként implode();-al összefűzve.
És itt van a problémám, hogy azokat is hozzáfüzi nekem az array utasitás amiknek nincs értékük.
Na ez a rész érdekelne engem mert nem tudok rájönni, hog tudom elkerülni azt, hogy az érték nélküli mezőket beirja nekem.
Próbáltam if (!empty($_POST[]...)-al de nem hagjya lefutni a programrészt.Az előbbi próbálkozásom ha jol tudom ellenőrzi hogy ki van e töltve a $_POST-olt mező.Ha nem akkor javitsatok ki légyszives.

köszi szabolcs
4

Egymás alatt azt értem, hogy

Poetro · 2012. Jan. 15. (V), 17.14
Egymás alatt azt értem, hogy nem egymás alá helyezi el a hozzáadott input mezőket hanem egymás mellé.

Ehhez CSS-ben a display illetve a clear tulajdonságot kell állítani. Természetesen léteznek más megközelítések CSS-ben ugyanerre de a fenti kettő közül választani talán a legegyszerűbb.

valami hasonló dologra gondoltál vagy még kell bele valami, hogy jo is legyen?

Valamit el kellene venni belőle, és valamit hozzá kellene tenni.
Én nem azt írtam, hogy a $_POST[""] tömbbön kell végigmenni, hanem a $_POST tömbbön. Ehhez a legegyszerűbb módszer a:
foreach ($_POST as $kulcs => $ertek) {
  echo $kulcs, ': ', $ertek;
}
Azokat az elemeket egy tömbben melyeknek nincs értéke például az array_filter segítségével lehet kiszűrni, de ha már a $_POST tömbbön úgyis végigiterálsz, akkor már ott is elintézheted a szűrést - csak azokat az értékeket tartod meg, ahol az $ertek nem üres.
5

ezer hála

shadow198811 · 2012. Jan. 15. (V), 18.29
Az array_filter();-el sikerült megcsinálnom.
Nagyon szépen köszönöm örök hála a segitségért.