Slanje forme preko AJAX-a

Slanje forme preko AJAX-a

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Pravim sistem gde će korisnik moći da menja jedan tekst bez otvaranja nove stranice kada klikne dugme "Edit" i bez otvaranja i redirekcije kada klikne "Save", već sve da ide preko Ajax-a.

E, sad, trenutno mi radi prikaz teksta iz ajaxa i kliktanje na dugme edit. Kada se klikne na njega, umesto teksta pojavi se <textarea id="editarea"> sa "source codeom" texta koji je malopre bio prikazan i to spakovano u formu sa imenom "editform". E,sad, jedini problem mi je pamćenje izmena. Tj, kako da ja pošaljem preko ajax-a stranici vrednosti iz te forme? Probao sam sa otvaranjem linka putem
xmlhttp.open("POST",proces.php?action=save&value=document.getElementById('editarea').value,true) i to radi, samo što mi potpuno izbacuje nove redove i onda mi tekst recimo
Ovo je Neki tekst
se u bazi podataka zapamti kao
Ovo jeNeki tekst



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Prijatelju, tebi treba funkcija nl2br.

http://php.net/nl2br

U sustini, ona new lines "\n" pretvara u <br /> elemente i tako dobijes ono sto ti je potrebno.


Pozdrav,
Boban.



offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Znam za nju, al mi ne treba ona iz dva razloga.

Prvi je to što ne želim u bazi podataka da imam <br> tagove, već njih "pravim" tek pri prikazivanju stranice tom funkcijom, ili funkcijom str_replace.

Drugi, bitniji razlog Very Happy je taj što nije problem ovde do PHP-a već do javascripta. Ja i kada ubacim nl2br, on i dalje sve prikazuje u jednom redu jer mu očigledno javascript ne šalje uopšte "\n" vrednost.

Dakle,i ovako:

mysql_query("UPDATE bands SET about='".nl2br($value)."' WHERE id=".$id)

i ovako

mysql_query("UPDATE bands SET about='".$value."' WHERE id=".$id)

Taj tekst meni u bazi završi bez novih redova, baš onako kako sam napisao u gornjoj poruci.

Iako se ne razumem, mislim da je problem u tome što vrednost šaljem preko URL-a, a ne nekom drugom metodom pa zato i molim za pomoć jer tu drugu metodu ne znam

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Probaj da odradis serializaciju prvo..
http://api.jquery.com/serialize/
http://www.dotnetfunda.com/articles/article763-ser.....ript-.aspx

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Uspeo sam sa ovim Jquery-jem i njegovim Form pluginom. Samo što izgleda ima problem kada forma ne postoji na stranici od starta nego je ajax tek kasnije šalje, tako da sam morao sistem skroz da izmenim. Tj forma stoji nonstop na stranici, samo nije vidljiva uvek.

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Evo ti primer pa probaj da iskoristiš.

//index.php <!DOCTYPE> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript" src="custom.js"></script> </head> <body>    <div>Ime</div>    <input id="ajax-ime" name="ime" type="text" maxlength="32" />    <div>Prezime</div>    <input id="ajax-prezime" name="prezime" type="text" maxlength="32" />    <div>Tekst</div>    <textarea id="ajax-tekst" name="tekst"/></textarea>    <button id="ajax-sacuvaj">Sacuvaj</button> </body> </html>
//custom.js $(document).ready(function() {    $('#ajax-sacuvaj').click(function () {              var aime = $("#ajax-ime").val();       var aprezime = $("#ajax-prezime").val();       var atekst = $("#ajax-tekst").val();           $.post('ajax.php',{ime: aime, prezime: aprezime, tekst: atekst,}, function (data){});        }); });
//ajax.php <?php    if(isset($_POST['ime']) && isset($_POST['prezime']) && isset($_POST['tekst']))    {       $ime = $_POST['ime'];       $prezime = $_POST['prezime'];       $tekst = $_POST['tekst'];              $tekst_txt = 'ajax.txt';              $file = fopen($tekst_txt, "w");       fwrite($file, $ime."\n");       fwrite($file, $prezime."\n");       fwrite($file, $tekst."\n");       fclose($file);    } ?>

https://www.mycity.rs/must-login.png

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

U jqueriju postoji metoda [url="http://docs.jquery.com/Events/live"]live()[/url] koja radi bas to sto tebi treba. Znaci umesto
$(form).submit(function() { // ... }); kucas
$(form).live('submit', function() { // ... });

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Hvala puno ljudi, uspelo je i to baš baš jednostavno:

function aboutBandEdit(id) {    item = document.getElementById('dynamictext');        item.innerHTML = '<textarea id="editedtext" cols="75" rows="20">'+jQuery.trim(item.innerHTML)+'</textarea><br><input onClick="aboutBandSave('+id+')" type="button" class="in_button_blue" value="Save">'; } function aboutBandSave(id) {       var abouttext = $("#editedtext").val();           $.post('baseprocess.php?vw=s&action=bandabout&id='+id,{value: abouttext}, function (data){}); }

Ko je trenutno na forumu
 

Ukupno su 779 korisnika na forumu :: 16 registrovanih, 1 sakriven i 762 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bestguarder, bigfoot, bobomicek, bojcistv, drimer, Ilija Cvorovic, Lazarus, Milometer, miodrag, samsung, Shilok, Srki94, suton, wolverined4, zziko, šumar bk2