Results 1 to 18 of 18

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User Horus92's Avatar
    Join Date: May:2007
    Location: Ñîôèÿ
    Posts: 501

    Form submit ñ AJAX

    Çäðàâåéòå. È àç ñúì ïîðåäíèÿò, êîéòî òúðñè ïîìîù. Èñêàì äà íàïðàâÿ ñúáìèòâàíåòî íà åäíà ôîðìà çà ðåãèñòðàöèÿ äà ñòàâà ñ AJAX, íî ñúì â çàäúíåíà óëèöà. Ïúðâî åòî êîäà.
    Code:
    function ajaxrequest(url, typeReq, data, onSuccess){
    		$.ajax({
    			url: url,
    			type: typeReq,
    			data: data,
    			success: onSuccess
    		});
    	}
    
    	var rform = $('#reg-form');
    	rform.submit(function(){
    		ajaxrequest(rform.attr('action'), rform.attr('method'), rform.serialize(), function(){
    				$('#registration-form').html("<div id='message'></div>");
    				$('#message').html("<h2>Registration Successfull!</h2>")
    				.append("<p>Now you can login by pushing the Login button</p>")
    				.hide()  
        			.fadeIn(1500, function() {  
          				$('#message').append("<img id='checkmark' src='images/check.png' />");  
        			});  
        			$("#login-bg").delay(3200).fadeOut(300);
        			$("#registration-form").delay(3200).fadeOut(300);
    			});
    		event.preventDefault(); 
    
    	});
    Ïðîáëåìúò ìè èäâà îò ïîñëåäíèÿ ðåä event.preventDefault(). Ñëîæèë ñúì ãî, çà äà ñïðà çàðåæäàíåòî íà ðåçóëòàòà îò php ôàéëà íà åêðàíà, íî íåçíàéíî çàùî çà ìåí, êîãàòî å òîçè ðåä å íàïèñàí íå ñå èçïúëíÿâà çàÿâêàòà. Âñúùíîñò ìîæå è äà ñå èçïúëíÿâà ïîíåæå ñå èçïúëíÿâà ôóíêöèÿòà ïðè óñïåõ, íî â áàçàòà îò äàííè íÿìà çàïèñ. Êîãàòî ìàõíà òîçè ðåä âñè÷êî ñè ñå çàïèñâà òî÷íî, íî ìè ñå ïðåçàðåæäà ñòðàíèöàòà. Ñèëíî ñå íàäÿâàì íÿêîé äà ìîæå äà ìè ïîìîãíå. Áëàãîäàðÿ ïðåäâàðèòåëíî.

    P.S. Ñåãà ñè ïðàâèõ îùå åêñïåðèìåíòè è ìèñëÿ, ÷å êàòî ìàõíà âúïðîñíèÿ ðåä ïðîñòî ñå èçïúëíÿâà îáèêíîâåíà çàÿâêà è çàòîâà ðàáîòè.
    Last edited by Horus92; 2nd July 2013 at 13:08.

  2. #2
    Registered User
    Join Date: Apr:2013
    Location: Ñîôèÿ
    Posts: 14
    Ñëîæè ïàðàìåòúð "event" â àíîíèìíàòà ôóíêöèÿ, êàêòî å ïîêàçàíî ïî-äîëó è ñëîæè event.preventDefault() â íà÷àëîòî.
    (Ìèñëÿ, ÷å ìîæåø äà èçïîëçâàø è return false)

    Code:
    $("a").click(function(event) {
         event.preventDefault();
         $('<div/>')
             .append('default ' + event.type + ' prevented')
             .appendTo('#log');
    });
    Last edited by tozovec; 2nd July 2013 at 14:41.

  3. #3
    Registered User Horus92's Avatar
    Join Date: May:2007
    Location: Ñîôèÿ
    Posts: 501
    Íå ñòàâà. Ñúùàòà ðàáîòà. Ôóíêöèÿòà ïðè óñïåõ ñå èçïúëíÿâà è ìè èçëèçà ñúîáùåíèå çà óñïåøíà ðåãèñòðàöèÿ, íî ðåàëíî â áàçàòà íÿìà íèùî. Ñ return false ñúùî íÿìà óñïåõ. Áëàãîäàðÿ âñå ïàê.

  4. #4
    Ëîø àäìèí! vbTheKing's Avatar
    Join Date: Sep:2003
    Location: Ñîôèÿ
    Posts: 4,138
    Çà äåáúãâàíå íà AJAX èçïîëçâàé Firebug ïðè Firefox èëè Developer tools ïðè Chrome. Òðÿáâà äà ïðîâåðèø äàëè èçîáùî ñå èçâèêâà íÿêàêâî ÐÍÐ ñ òîçè JS, ïîñëå äà ïðîâåðèø êàêúâ ðèñïîíñ âðúùà ñúðâúðà, äà âèäèø äàëè íÿìà íÿêàêâà ñèíòàêòè÷íà ãðåøêà â JS êîäà è ò.í.
    Ïóñíè äà âèäèì êàêâî èìàø â ÐÍÐ ôàéëà (èëè òàì êàêúâòî ñúðâúðåí åçèê ïîëçâàø).
    Ëþáèìî ïèòèå çàïî÷âàùî ñ áóêâàòà 'Ê'? * Êàñà áèðà *
    Àêî ìîæåø äà ëåæèø íà ïîäà áåç äà òè ñå íàëàãà äà ñå äúðæèø - âñå îùå ÍÅ ñè ïèÿí!
    Äàâàéòå ñëåäâàùàòà Êàñà...

  5. #5
    Registered User Horus92's Avatar
    Join Date: May:2007
    Location: Ñîôèÿ
    Posts: 501
    Eòî PHP êîäà. db_escape() è db_query() ñà ôóíêöèè îò db.php ôàéëà, íî ñúì ñèãóðåí, ÷å ðàáîòÿò. Îò JS êîäà ñúì ñèãóðåí, ÷å rform.attr('action'), rform.attr('method'), rform.serialize() âçèìàò ñòîéíîñòèòå îò ôîðìàòà ïîíåæå ãè ïðèíòèðà â êîíçîëàòà. Îáà÷å ïðîáâàõ è äà èçâåäà data îòãîâîðà îò php ôàéëà âúâ ôóíêöèÿòà ïðè óñïåõ, è èçëèçà ïðàçåí ðåä, íî âñúùíîñò íå ñúì ñèãóðåí êàêâî òðÿáâà äà èçâåäå.
    Code:
    <?php
    
    require_once "db.php";
    
    $username = db_escape($_POST['username']);
    $password = db_escape(md5($_POST['pass1']));
    $repass = db_escape(md5($_POST['repass']));
    $email = db_escape($_POST['email']);
    $genre1 = db_escape($_POST['genre1']);
    $genre2 = db_escape($_POST['genre2']);
    $genre3 = db_escape($_POST['genre3']);
    
    if(isset($_POST['register'])){
    		if ($password == $repass) {
    		$query = "INSERT INTO accounts (username, password, mail, type, favganre1, favganre2, favganre3) 
    		VALUES ('$username', '$password', '$email', 1 , '$genre1', '$genre2', '$genre3')";
    		$result = db_query($query);
    		
    	}
    	else die('Passwords does not match!');
    	
    	
    }
    
    ?>

  6. #6
    Registered User tedych's Avatar
    Join Date: Nov:2003
    Location: Ïëîâäèâ
    Posts: 17,654
    Äàé è õòìë êîäà.
    Ïðîâåðè äà íÿìàø åëåìåíòè âúâ ôîðìàòà ñ id ili name ñúñ ñòîéíîñòè êàòî submit, length è äðóãè êîèòî ìîãàò äà êîíôëèêòèðàò ñ ïðîïåðòèòà íà ôîðìàòà.
    Óâåðè ñå ÷å ïîëçâàø è ïîñëåäíà âåðñèÿ íà jquery.
    Âìåñòî preventDefault, ïðîáâàé ïðîñòî return false;
    ÏÕÏ ôàéëà íå âèæäàì äà âðúùà íèùî, îñâåí ïðè ãðåøêà â ïàðîëèòå äà ïëþå ñòðèíã îáðàòíî.
    Â áàçàòà ñè äàë ïîëåòà favganre..., äîêàòî ÿâíî èìàø ïðåäâèä gEnre, òàì íÿêàêâà ãðåøêà äà ñå ìúäðè....

  7. #7
    Math Lover haho's Avatar
    Join Date: Apr:2006
    Location: Ïëîâäèâ
    Posts: 695
    Ìíîãî íåìîæàõ äà ðàçáåðà êàêâî ñå îïèòâàø äà íàïðàâèø, íî òîâà êîåòî çàáåëÿçâàì íà ïðúâ ïîãëåä:
    ajax çàÿâêàòà ñå èçïúëíÿâà àñèíõðîííî, ò.å. ñëåä êàòî íàïðàâè ðåêóåñòà èíòåðïðåòàðîðà íå ÷àêà îòãîâîðà (ò.å. callback ôóíêöèÿòà òè íå ñå èçïúëíÿâà) à ïðåíèìàâà íà event.preventDefault(); ñ êîåòî ìèñëÿ, ÷å òè ñïèðà è callback-a ñëåä òîâà. Êîåòî å è ïðè÷èíàòà êàòî ãî ìàõíåø äà òè ñå èçïúëíÿâà êîäà.
    Çà äà ïðåäîòâðàòèø òîâà ïîâåäåíèå òðÿáâà:
    Code:
    		$.ajax({
    			url: url,
    			type: typeReq,
    			data: data,
                            async: false,
    			success: onSuccess
    		});
    Òàêà, èíòåðïðåòàòîðà ùå èç÷àêà îòãîâîðà îò ajax-a è ñëåä òîâà ùå ïðåìèíå íà event.preventDefault();
    It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.

  8. #8
    Registered User Horus92's Avatar
    Join Date: May:2007
    Location: Ñîôèÿ
    Posts: 501
    Äà òîâà ãî íàêàðà äà èç÷àêà, íî â áàçàòà ïàê íèùî íå ñå å çàïèñàëî, à è â ñëó÷àÿ îòãîâîðúò îò php ôàéëà íå ìå èíòåðåñóâà. Ïðîñòî èñêàì èíôîðìàöèÿòà äà ÿ âèäÿ êàòî ðåä â òàáëèöàòà.

  9. #9
    Math Lover haho's Avatar
    Join Date: Apr:2006
    Location: Ïëîâäèâ
    Posts: 695
    Quote Originally Posted by Horus92 View Post
    Äà òîâà ãî íàêàðà äà èç÷àêà, íî â áàçàòà ïàê íèùî íå ñå å çàïèñàëî, à è â ñëó÷àÿ îòãîâîðúò îò php ôàéëà íå ìå èíòåðåñóâà. Ïðîñòî èñêàì èíôîðìàöèÿòà äà ÿ âèäÿ êàòî ðåä â òàáëèöàòà.
    1. Èíñòàëèðàé ñè firebug.
    2. Îò php ôàéëà áèé åäèí "exit;" íàêðàÿ (ïðè AJAX çàÿâêè âèíàãè ãî ïðàâè, äàæå ìîæå äà ãî ñëîæèø íà ìÿñòîòî íà çàòâàðÿùèÿ òàã '?>',  php ôàéëîâå íå òè òðÿáâà çàòâàðÿù òàã è äîðè å ïðåïîðú÷èòåëíî äà íå ãè ïèøåø, çàùîòî ñëåä íåãî àêî èìàø íÿêâè ïðàçíè ðåäîâå ùå èçëåçíàò êàòî output).
    3. ñëîæè åäèí var_dump($_POST); â íà÷àëîòî íà php ôàéëà.
    4. ïóñíè firebug s F12 è îòèäè íà òàáà "console" -> "all".
    èçïúëíè ajax-a è êàæè êàêúâ å ðåñïîíñ-à îò çàÿâêàòà.


    Åäèò: ðàäâìà ñå, ÷å å ñòàíàëî : ) ñåãà êàòî äåáúãíåø è ùå ðàçáåðåø çàùî íå òè ìèíàâà èô-à
    It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.

  10. #10
    Registered User Horus92's Avatar
    Join Date: May:2007
    Location: Ñîôèÿ
    Posts: 501
    Äà. Ïî ïðèíöèï ïîëçâàì õðîì ïîíåæå ñàìî òîé è ñàôàðè ïîääúðæàò åäíè òðàíñôîðìàöèè, íî ÿâíî ùå èíñòàëèðàì è ìîçèëà. Òàêà âå÷å ñàìî Oïåðà ìè ëèïñâà.

  11. #11
    Êèñåëèÿ ÷îâåê™
    Join Date: Apr:2006
    Location: Ñîôèÿ
    Posts: 8,666
    Íå çíàì çà âàñ, íî àç ðàçãëåæäàì event.preventDefault() êàòî else{} è console.log, àìà áåç console è log. Çà ò'âà è öèòèðàõ äèðåêòíî îò jquery api-òî. È îáèêíîâåíî å õóáàâî php-òî äà âðúùà åõî, äîðè ãðåøêèòå äà ñà ñïðåíè îò ïðèíòâàíå â ini-òî/ñêðèïòà.

  12. #12
    Registered User Horus92's Avatar
    Join Date: May:2007
    Location: Ñîôèÿ
    Posts: 501
    Ñòàíàààààààààààààààà. Íàé-íàêðàÿ. Íà ñåäìîòî íåáå ñúì. Íàé-õóáàâèÿò ïîäàðúê çà ðîæäåí äåí. Âèíîâíèêúò å if(isset($_POST['register'])). Íå çíàì çàùî ñå äúíè ñàìî ñ ajax, íî âàæíîòî å, ÷å çíàì êúäå å ïðîáëåìúò. Ìíîãî âè áëàãîäàðÿ îòíîâî.

  13. #13
    Êèñåëèÿ ÷îâåê™
    Join Date: Apr:2006
    Location: Ñîôèÿ
    Posts: 8,666
    Quote Originally Posted by Horus92 View Post
    P.S. Ñåãà ñè ïðàâèõ îùå åêñïåðèìåíòè è ìèñëÿ, ÷å êàòî ìàõíà âúïðîñíèÿ ðåä ïðîñòî ñå èçïúëíÿâà îáèêíîâåíà çàÿâêà è çàòîâà ðàáîòè.
    Description: If this method is called, the default action of the event will not be triggered.
    Ùî ñå çàíèìàâàø ñ ãëóïîñòè, à íå ðàáîòèø ñ ÷èñò JS?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè