Jump to content
php.lv forumi

Attēla saglabāšana formā pēc submit nospiešanas


senters

Recommended Posts

Ir eventa pievienošanas forma.

Kā pēc submit pogas nospiešanas paturēt pievienoto attēlu. Šobrīd nospiežot submit, attēls jāpievieno pa jaunu.

 

 

 

Pievienot attēlu:
<input type="file" id="file" name="att" />
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />

 

Vai var kaut kā līdzīgi uztaisīt, tam kā daru ar parastajiem input laukiem, kur, ja ir formas aizpildīšanas kļūda pēc submita dati saglabājas savos input laukos:

 

<input type="text" name="reference" class="input_reference" id="chcount_eventreference" spellcheck="false" value="<?php if(isset($_POST['add_event'])) { echo $reference; } ?>" />

Link to comment
Share on other sites

Nesapratu īsti šim te vajadzību, nafig ļaut lietotājam izvēlēties failu, un pie submit to nesaglabāt uz servera?

 

Man jau liekas ka pats esi sapinies meistarībā.

Šķiet viss kas tev ir vajadzīgs pēc submit saglabā failu uz servera, ja fails nebija pievienots, izdrukā input file formu vēlreiz, lai ļautu pievienot to attēlu.

 

Par to jquery, nu tehniski var, pats tiko kaut ko līdzīgu uzbūru, bet tur jau nav atšķirības jquery, prototype vai kāds cits frameworks

Ideja vienkārša:

<form target="iframe"/>

<iframe width="0px" height="0px" name="iframe">

upload response

<script>windows.top.$("img").attr('src','bilde.jpg')</script>

 

Darbības princips ir tāds, ka forma to faila upload sūta uz iframe, un tas tad visu smuki izdara :)

Link to comment
Share on other sites

Centīšos paskaidrot sīkāk, tiem kam nav skaidrs.

 

Savadu formā datus - nosaukums, apraksts... (vēl kaudzi citus obligātos laukus)... pievienoju eventam attēlu --> spiežu submit --> notiek validācija, ja esmu aizmirsis kādu obligāto lauku ievadīt tiek izmests error msg un attēls, ko pievienoju nav uploadots, jo formas aizpildē bija kļūda/as. Līdz ar to attēls ir atkal jāizvēlas pa jaunu.

 

Input laukiem, daru tā, ka saglabāju ievadītos datus pēc validācijas:

 

value="<?php if(isset($_POST['add_event'])) { echo $reference; } ?>"

Link to comment
Share on other sites

Centīšos paskaidrot sīkāk, jo izskatās, ka nesaprati, ko mēs domājām :)

 

Savadu formā datus, izvēlos attēlu, nosubmitoju, SAGLABĀJU attēlu uz servera pagaidu vietā, validēju pārējos laukus. Ja ir kļūda, lieku ievadīt pārējos laukus, bet attēlu nelieku ievadīt, jo tas jau atrodas uz servera. Attēla nosaukumu var pieglabāt arī sesijā.

 

Tikai nevajadzētu aizmirst, ka lietotājs var nepabeigt reģistrāciju un šis fails paliks uz servera.

Link to comment
Share on other sites

Var jau datus validēt ar js. Kaut vai uz submit nosūta ajax, ja obligāti jāvalidē ar serveri, un, ja ir ok, tad tikai formu posto (un validē php pusē atkal). Tiem, kam nebūs js, varēs otreiz likt bildi. Atslēgtie js jau pieraduši, ka viss ir neērtāks (vai daudz kas nedarbojas).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...