Function click – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Function  click – JavaScript, AJAX, jQuery – Fórum – Programujte.comFunction click – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
zelenac10
Návštěvník
10. 3. 2016   #1
-
0
-

Dobrý deň,

chcem sa opytať prečo mi nechce zobraziť viac krat pole input vždy sa mi zobrazi len 1x.

  <script type="text/javascript">
    $(document).ready(function(){
        $("input[type=file]").click(function(){

            $.ajax({
                type: 'POST',
                url: 'galeria.php',
                success: function(data) {
                   $("#add_galeria").html(data);

                }
            });
   });
});
</script> 

galeria.php

<?php
session_start();
$galeria = $_SESSION["galeria"];
 if (isset($galeria))
  {
   $_SESSION["galeria"] = $galeria++;
   $i = $galeria++;
  }
 else
  {
   $_SESSION["galeria"] = "1";
  }
?>
<input type="file" name="obr<? echo $i; ?>" class="form-control" id="galeria">
Nahlásit jako SPAM
IP: 188.121.182.–
Vkuse sa len učím :)
Reklama
Reklama
peter
~ Anonymní uživatel
2551 příspěvků
11. 3. 2016   #2
-
0
-

Nerozumim tvemu kodu. Co to ma presne delat?

Php kod se zpracovava na serveru.
Html / js kod zpracuje www prohlizec.

   $_SESSION["galeria"] = $galeria++;
   $i = $galeria++;

kdyz si to prepises na
echo '<br>'.$galeria; // 0
   $_SESSION["galeria"] = $galeria++; // session = 0
echo '<br>'.$galeria; // 1
   $i = $galeria++; // i = 1
echo '<br>'.$galeria; // 2
Nahlásit jako SPAM
IP: 2001:718:2601:26c:1129:4c...–
peter
~ Anonymní uživatel
2551 příspěvků
11. 3. 2016   #3
-
0
-

Teda, ja nevim, jestli to treba nemas zamerne. Jen chci rici, ze 

$a = $i++; je skoro totez jako
$a = $i; $i = $i + 1;
$a = ++$i; je skoro totez jako
$i = $i + 1; $a = $i;

Cili, mozna to je chyba a asi jich tam bude vic. Jen proste netusim, co by to melo delat. Neni tam nic, co by melo zobrazit vic nez 1 input, zadny cyklus (for, while).

Nahlásit jako SPAM
IP: 2001:718:2601:26c:1129:4c...–
zelenac10
Návštěvník
11. 3. 2016   #4
-
0
-

No ja potrebujem keď niekdo klikne na pridať subor aby sa pridal pod neho další input prázdny. A galeria.php mi len čisluje inputy, aby som to vedel potom nahrať. Ale funguje to iba jeden kráť.. Tak, že mam jeden napevno na stránke a ked dám pridať subor tak mi system pridá další poličko na stránke aby som mohol nahrať ešte nejaký subor. Ale pri tom druhom mi už nenahra dalšií input.

Nahlásit jako SPAM
IP: 188.121.182.–
Vkuse sa len učím :)
peter
~ Anonymní uživatel
2551 příspěvků
11. 3. 2016   #5
-
0
-

Tak, jestli chces pridat dalsi input, tak to pracujes ve webovem prohlizeci. Ten pracuje s javascriptem. Takze v js napises kod, aby se pridal do stranky dalsi input.
Pak zalezi, jaky zpusob odesilani dal zvolis, protoze maximalne naraz lze odeslat 1-2 soubory. Pak narazis na maximum post size, bud 2 MB nebo byva i 8 MB. Pokud nemas v php nastaveno jinak.

Pokud ti to ovsem nefunguje jinak...

<?php
session_start();
$galeria = $_SESSION["galeria"];
 if (isset($galeria))
  {
   $_SESSION["galeria"] = $galeria++;
   $i = $galeria++;
  }
 else
  {
   $_SESSION["galeria"] = "1";
  }
?>
<input type="file" name="obr<? echo $i; ?>" class="form-control" id="galeria">

Aha, takze ten kod ma po odeslani formulare vygenerovat input s dalsim name. Tak to je dost nestabilne napsane.
Neoverujes nastaveni session pres isset().
Nenastavujes vychozi hodnoty.
V $i mas hodnotu o +1 vetsi nez v session $_SESSION["galeria"] = $galeria++;

if (isset($_SESSION["galeria"])) { je } else { neni }
neni: read=-1, new=0, session=new
je: read=session, new=session+1, session=new
if (read>0) {nacti obrazek(obr+read);}
<input type="file" name="obr<? echo $new; ?>">

A urcite to potrebujes takhle slozite? Ten input muze mit vzdycky stejne name. Obrazky preci stejne musis nekde ukladat, ne? A v ulozisti se da spocitat pocet nahranych obrazku. Ja nevim, treba to ukladas do uzivatelovi slozky a potrebujes, aby mohl na ucet nahrat max 10 obrazku (uzivateli to neva, potrebuje 100, tak vytvori 10 uctu :) ). Tak si spocitas pocet obrazku ve slozce. Do session neni treba nic nastavovat.

No, a kdybys to delal tim javascriptem, treba 3 inputy pod sebou, tak to napises preci jako pole
<input type="text" name="obr[]"> // pouzil jsem text kvuli vardump
<input type="text" name="obr[]">
<input type="text" name="obr[]">
<?php var_dump('obr') ?>

Nahlásit jako SPAM
IP: 2001:718:2601:26c:1129:4c...–
q
~ Anonymní uživatel
219 příspěvků
13. 3. 2016   #6
-
0
-

IMHO se ta funkce pro click nastaví jen tomu prvnímu inputu a stále nahrazuje stejný element jedním inputem.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

Podobná vlákna

Undefined function — založil Kowalsky

Url_name function — založil Vítězslav Mergl

Equality function — založil nord

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý