Автор Тема: jQuery, JSON и PHP  (Прочетена 3016 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

federer_11

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 931
  • ULTRAS LEVSKI
jQuery, JSON и PHP
« -: 21 Ноември 2010, 12:51:40 »
Здравейте. Ползвам validation engine плъгина на jQuery за inline валидация на формулярите в сайта ми, но имам един малък въпрос и той е как да сравня дали стойностите на две полета съвпадат (например на паролите в регистрационен формуляр). Ето го плъгина: Натисни ме нежно. Досега съм направил това:

jquery.validate-en.js:

(function($) {
$.fn.validationEngineLanguage = function() {};
$.validationEngineLanguage = {
newLang: function() {
$.validationEngineLanguage.allRules = { " required " :{    
" regex " : " none " ,
" alertText " : " * Това поле е задължително. " ,
" alertTextCheckboxMultiple " : " * Моля избери опция. " ,
" alertTextCheckboxe " : " * Този чекбокс е задължителен. " },
" length " :{
" regex " : " none " ,
" alertText " : " *Между  " ,
" alertText2 " : "  и  " ,
" alertText3 " :  "  позволени знаци. " },
" maxCheckbox " :{
" regex " : " none " ,
" alertText " : " * Позволените опции свършиха. " },
" minCheckbox " :{
" regex " : " none " ,
" alertText " : " * Моля избери  " ,
" alertText2 " : "  опции " },
" confirm " :{
" regex " : " none " ,
" alertText " : " * Полето не съвпада. " },
" telephone " :{
" regex " : " /^[0-9\\-\\(\\)\\ ]+$/ " ,
" alertText " : " * Невалиден телефонен номер. " },
" email " :{
" regex " : " /^[a-zA-Z0-9_\\.\\-]+\\@([a-zA-Z0-9\\-]+\\.)+\\.[a-zA-Z0-9]{2,4}$/ " ,
" alertText " : " * Невалиден email адрес. " },
" date " :{
                          " regex " : " /^[0-9]{4}\\-\\[0-9]{1,2}\\-\\[0-9]{1,2}$/ " ,
                          " alertText " : " * Невалидна дата, използвайте YYYY-MM-DD формат. " },
" onlyNumber " :{
" regex " : " /^[0-9\\ ]+$/ " ,
" alertText " : " * Позволени са само числа. " },
" noSpecialCaracters " :{
" regex " : " /^[0-9a-zA-Z]+$/ " ,
" alertText " : " * Не са позволени специални знаци. " },
" ajaxUser " :{
" file " : " libs/validate_user.php " ,
" extraData " : " name=eric " ,
" alertTextOk " : " * Потребителското име е свободно. " ,
" alertTextLoad " : " * Зареждане, моля изчакайте. " ,
" alertText " : " *Потребителското име вече е използвано. " },
" onlyLetter " :{
" regex " : " /^[a-zA-Z\\ \\ ' ]+$/ " ,
" alertText " : " * Само букви " },
}
}
})(jQuery);

$(document).ready(function() {
$.validationEngineLanguage.newLang()
});


validate_user.php


include  ' ../common.php ' ;

$validateValue = $_POST[ ' validateValue ' ];
$validateId = $_POST[ ' validateId ' ];
$validateError = $_POST[ ' validateError ' ];

$register = new o_Register();

$checkName = $register->checkUsername($validateValue);

if($checkName == true)
{
$response =  ' true ' ;
}
else
{
$response =  ' false ' ;
}
echo json_encode(array( ' jsonValidateReturn '  
=> array
(
$_POST[ ' validateId ' ],
$_POST[ ' validateError ' ],
$response
)
));
?>
(x)HTML, CSS, PHP, MySQL, XML, WML, JavaScript (jQuery)

federer_11

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 931
  • ULTRAS LEVSKI
Отг:jQuery, JSON и PHP
« Отговор #1 -: 21 Ноември 2010, 21:14:04 »
Оправих проблема с една custom функция:


function validateEmails()
{ if($( " #email " ).val() == $( " #email2 " ).val())
{
return true;
}
else
{
return false;
}
}


И разбира се добавих в jquery.validate-en.js:


 " validateEmails " :{ " nname " : " validateEmails " ,
 " alertText " : " * Email адресите не съвпадат " },


Функцията се извиква с funcCall[validateEmails] във CSS селектора.
(x)HTML, CSS, PHP, MySQL, XML, WML, JavaScript (jQuery)

federer_11

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 931
  • ULTRAS LEVSKI
Отг:jQuery, JSON и PHP
« Отговор #2 -: 21 Ноември 2010, 22:05:41 »
Обаче имам друг проблем: в главната директория имам index.php. В него включвам темплейтните файлове (header,sidebar,footer) и имам един div в който динамично с Ajax зареждам съдържание от различни файлове в директорията pages. В страницата за регистрация (pages/register.php) имам:


//филтриране на входящите данни

$register = new o_Register();
$addUser = $register->m_addUser($username, $email, $password);

$smarty->display( ' register.html ' );
?>


В темплейтния файл register.html имам:


Регистрация на потребител









 






 






 






 






 





 






Имам и един файл ajax_submit.php, който връща резултат на JSON:


$isValidate = true;

if($isValidate == true)
{
echo  " true " ;
}
else
{
echo  ' { " jsonValidateReturn " : ' .json_encode($arrayError). ' } ' ;
}
?>

Въпросът ми е защо при регистрация ми прави запис, но не взима стойностите, които съм взел през $_POST променливите и след това съм задал като параметри на метода m_addUser() от класа o_Register ?

Надявам се сте ме разбрали и дано успеете да ми помогнете с нещо, защото ме заболя главата вече.  :laugh: Ще черпя по една бира.  :P  
(x)HTML, CSS, PHP, MySQL, XML, WML, JavaScript (jQuery)

federer_11

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 931
  • ULTRAS LEVSKI
Отг:jQuery, JSON и PHP
« Отговор #3 -: 21 Ноември 2010, 22:54:06 »
Така де, промених някои неща в ajax_submit.php файла и вече прави запис, НО не връща резултат на JSON:


$register = new o_Register();
$addUser = $register->m_addUser($_POST[ ' user ' ], $_POST[ ' email ' ], sha1($_POST[ ' password ' ]));

if($addUser == true)
{
echo  ' true ' ;
}
else
{
echo  ' { " jsonValidateReturn " : ' .json_encode($arrayError). ' } ' ;
}


и съответно не ми дисплейва приятното съобщение на зелен фон  " Вие се регистрирахте успешно... " .  :unsure:  :(
(x)HTML, CSS, PHP, MySQL, XML, WML, JavaScript (jQuery)

NoBBy

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 4
  • -Получени: 38
  • Публикации: 309
Отг:jQuery, JSON и PHP
« Отговор #4 -: 22 Ноември 2010, 08:04:14 »
Ползвай firebug
таб  " Net " , подтаб  " XHR "  за да видиш какво ти връща AJAX-а