Slanje forme preko AJAX-a

Slanje forme preko AJAX-a

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1007
  • 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: 1007
  • 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: 1007
  • 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: 330
  • 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);    } ?>

http://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: 1007
  • 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){}); }


Potreban je samo minut da se registrujete - da biste učestvovali u diskusiji:
Izaberite vaše korisničko ime [username] :
Vaša email adresa je [email] : Email adresa mora biti tačna!
Ukucajte željenu šifru [password] :
Ukucajte šifru ponovo [password again] :
Jezik [language] :




Ili se jednostavno uloguj preko Facebook-a:
Ko je trenutno na forumu
 

Ukupno su 475 korisnika na forumu :: 49 registrovanih, 3 sakrivenih i 423 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1383 - dana 19 Okt 2014 22:26

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 4channer, _Rade, Acid_Burn, Barkman, BRATORIII, Chuck Norris, darkangel2, dekao, doktor1964, dollar, Dragana Dokic Vilotijevic, drummer, EOD, Gandi1, Georgius2, igorpet, indja2, irinavelickovic, ivan979, ivance95, jazbar, Khamis, majorgaspar, Mala Truba, Mercury2, miko_84, mikrimaus, Mirjo, mpman, Nikola Gajić, petarnika, proka89, RJ, robertino, sakota79, samsung2, Silence, SlobaBgd, Sokolac, Sr.Stat., stringer bell, suton, tomislav91, vasa.93, Vladan22, vladetije, Vladko, Vojvodjanin, Žan Klod vam dam
Siguran hosting