JOOMLA!

Blog o CMS Joomla
a o (o)světě internetu
Home / Blog / Joomla / Ajax registrace do Virtuemart
Banner

Poslední komentáře

Aktuální verze

Joomla
LTS: 1.5.25 - download
Čeština pro 1.5.25 - download

LTS: 2.5.3 - download
Čeština pro 2.5.1 - download

Upgrade z 1.7.5 do 2.5.0 - download 
Čeština pro 1.7.5 - download

Virtuemart
2.0.2 - download 

Jomsocial
2.4.2 - download
Čeština pro 2.4.0 - download 

Z diskuzního fóra

Další témata »

Joomla! Vývojový plán

plan

Facebook

Ajax registrace do Virtuemart


Dnes jsem tento problém řešil a níže Vám přináším návod na úpravu registračního formuláře ve Virtuemart 1.1.9 s ověřováním uživatelských údajů pomocí ajaxu.

Vaši zákazníci to jistě ocení, pokud při registraci zadají již používaný nick nebo mail, informujete je o tom okamžitě při zadání. Předejdete tak nutnosti vyplňovat registrační formulář znovu atd.

Dobré je to také v přpadě, že načítáte registrační stránku do pop up okna a nechcete zákazníka přesměrovávat pryč, vše se odehraje na jedné stránce.

Výsledek můžete vidět např. na http://www.grapharts.cz/cs/shop?page=shop.registration .

Krok 1/ V souboru /administrator/components/com_virtuemart/html/checkout_register_form.php a na řádku 23 najděte
 
$missing = vmGet( $_REQUEST, "missing", "" );
if (!empty( $missing )) {
 echo "<script type=\"text/javascript\">alert('".$VM_LANG->_('CONTACT_FORM_NC',false)."'); </script>\n";
}


a nahraďte jej tímto kódem
 $missing = vmGet( $_REQUEST, "missing", "" );

?>

<script language="javascript" type="text/javascript"> 
 
 
 
 function getUsername(){
 var form = document.adminForm;
 var uname = form.username.value;
 
 if( !$('username_ticker') )
 $('username_input').innerHTML = $('username_input').innerHTML + "<div id=\"username_ticker\" style=\"padding-top:10px;\"></div>";
 
 $('username_field').value = uname;
 
 if( form.username.value.length < 3 ) {
 $('username_ticker').innerHTML = '<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">Username : This input value is not valid.</span>'; 
 } else {
 $('username_ticker').innerHTML = "<img src=\"<?php echo JURI::base()."images/wait.gif";?>\">&nbsp;Checking";
 var url = 'index.php?option=com_virtuemart&tasked=chkuserinfo&format=raw&what=uname';
 url = url + '&uname=' + form.username.value;
 
 new Ajax(url, {
 method: 'get',
 onComplete: function(x){
 if(x == 1) {
 $('username_ticker').innerHTML = '<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">This username is already registered.</span>'; 
 } else {
 $('username_ticker').innerHTML = '<span style="border:1px none transparent;color:green;padding:5px 5px 5px 5px;">The username \''+ $('username_field').value +'\' is free for registration: you can proceed.</span>';
 } 
 } 
 }).request();
 
 }
 }
 function getEmail(){
var form = document.adminForm;
 var eadd = form.email.value;
 
 if( !$('email_ticker') )
 $('email_input').innerHTML = $('email_input').innerHTML + "<div id=\"email_ticker\" style=\"padding-top:10px;\"></div>";
 
 $('email_field').value = eadd;
 
 if( !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(form.email.value))) {
 $('email_ticker').setHTML('<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">Email : This input value is not valid.</span>'); 
 } else {
 $('email_ticker').setHTML("<img src=\"<?php echo JURI::base()."images/wait.gif";?>\">&nbsp;Checking");
 var url = 'index.php?option=com_virtuemart&tasked=chkuserinfo&format=raw&what=email';
 url = url + '&email=' + form.email.value;
 
 new Ajax(url, {
 method: 'get',
 onComplete: function(x){
 if(x == 1) {
 $('email_ticker').setHTML('<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">This email is already registered.</span>'); 
 } else {
 $('email_ticker').setHTML('<span style="border:1px none transparent;color:green;padding:5px 5px 5px 5px;">The email \''+ $('email_field').value +'\' is free for registration: you can proceed.</span>');
 } 
 } 
 }).request();
 }
 }
 </script>
<?php

if (!empty( $missing )) {
 echo "<script type=\"text/javascript\">alert('".$VM_LANG->_('CONTACT_FORM_NC',false)."'); </script>\n";
}


Více pro registrované
Aktualizováno Neděle, 08 Leden 2012 16:02
 

Komentáře 

 
#2 Graph 2012-02-22 20:28
O ničem podobném nevím, ještě jsem to neřešil. Teď mám rozdělaný jeden e-shop na Virtuemart 2.0.x, tak pokud se k tomu dostanu, zpracuji to a napíši návod.
 
 
#1 raimond 2012-02-22 18:47
Pekné. Je niečo také aj pre VM 2 ?
 

Přidat komentář


Bezpečnostní kód
Obnovit

Graph.cz - blog studia Grapharts / Blog ze světa CMS Joomla, Virtuemart, Jomsocial, internetového podnikání, domén.

Mapa stránek  /  Kopírování textů nebo obrázků pouze se souhlasem autora / Copyright   ©   2011 Grapharts-studio Grus