html ajax在标签形式wordpress工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html ajax在标签形式wordpress工作相关的知识,希望对你有一定的参考价值。

<?php 
/**
 * Validat of register form
 *
 */	

require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');


/* Проверяем существуют ли переменные, которые передала форма  
   Если не существуют, то мы их создаем.
   Если форма передала пустые значения мы их удаляем */
if (isset($_POST['name'])) {
	$name = $_POST['name']; 
}
else {
	$name = false;
}

//check if mail exist
if (isset($_POST['email'])) {
	$mail = $_POST['email']; 
	
}
else 
	$mail = false;

// check if password exist
if (isset($_POST['firstps'])) {
	$pass = $_POST['firstps']; 
}
else 
	$pass= false;

// check if password confirmation exist
if (isset($_POST['secondps'])) {
	$pass2 = $_POST['secondps']; 
}
else 
	$pass2= false;

// check if submit button was clicked
if (isset($_POST['submit'])) {
	$submit = $_POST['submit'];
}
else 
	$submit = 0;

registerFormAction ($name, $mail, $pass, $pass2, $submit);

function registerFormAction ($username = false, $email = false, $pasword= false, $pas2 = false, $submit) 
{

	if ($submit == 1)
	{
			global $wpdb;
			$table_temp_new_user = $wpdb->prefix.'reg_temp';
			$user = chekUsername ($username);
			$maill = checkEmail ($email);
			$passw = checkPassword ($pasword, $pas2);
			
			
			if (!isset ($user) && !isset ($maill) && !isset($passw))
			{
				echo "$('#mess').html('sucsess');";
				$ctime = time ();
				$randomCode = wp_generate_password ($length = 12, $include_standart_special_chars=false);
				
				$checkinUrl = home_url() . '/emailcheck?randomCode=' . $randomCode;
				$mailText = "Your login is .For activation go to " . $checkinUrl;
				$hashpas = crypt($pasword);
				$wpdb->insert ($table_temp_new_user, array (
					'username' => $username, 
					'useremail' => $email,
					'password' =>  $hashpas,
					'code' => $randomCode,
					'time' => $ctime,
				), array ('%s','%s','%s','%s','%d',));
				wp_mail ($maill, "post check", $mailText );
				$bra = 'fine' . $checkinUrl;
				echo "$('#m_reg_user_form').html('" . $bra . "');";
			}	 
			else
				return;
			
		
	}
	else {
		if ($username)
		{
			chekUsername ($username);
			return;
		}
		else if ($email){
			checkEmail ($email);
			return;
		}
		else if ($pasword){
			checkPassword ($pasword, $pas2);
			return;
		}
		else if ($pas2){
			checkPassword ($pasword, $pas2);
			return;
		}
			
	}
	
}
function chekUsername ($username)
{
	if ($username)
		{
			if( !validate_username( $username ) )
			{
				$error = __('Invalid username. You must use only english letters, numbers or symbols: _-.* space','newsite2');
				//echo $error;
				echo "$('#nameError').html('" . $error . "');";
				return $error;;
			}
			
			if (strlen ($username) < 4 || strlen ($username) > 60)
			{
				$error = __('The length of username must be more an 5 and less then 60','newsite2'); 
				//echo $error;
				echo "$('#nameError').html('" . $error . "');";
				return $error;;
			}
			// проверка есть ли в бд данное имя пользователя
			if ( username_exists($username) != null)
			{
				$error = __('This username already exists','newsite2'); 
				echo "$('#nameError').html('" . $error . "');";
				return $error;;
			}
			$error = '';
			echo "$('#nameError').html('" . $error . "');";
			return ;
		}
		else {
			$error = __('Enter username, please!','newsite2'); 
			echo "$('#nameError').html('" . $error . "');";
			return $error;	
		}
		
}
function checkEmail ($email)
{
	if ($email)
		{
			if (!is_email ($email)) {
				$error = __('Invalid email','newsite2'); 
				echo "$('#emailError').html('" . $error . "');";
				return $error;
			}
			
			if (strlen ($email)  > 100)
			{
				$error = __('The length of email must be less then 100','newsite2'); 
				echo "$('#emailError').html('" . $error . "');";
				return $error;
			}
			// проверка есть ли в бд данное имя пользователя
			if ( email_exists($email) != null)
			{
				$error = __('This email already exists','newsite2'); 
				echo "$('#emailError').html('" . $error . "');";
				return $error;
			}
			$error = '';
			echo "$('#emailError').html('" . $error . "');";
			return ;
		}
		else {
			$error = __('Enter email, please!','newsite2'); 
			echo "$('#emailError').html('" . $error . "');";
			return $error;	
		}
}
function checkPassword ($pas1, $pas2)
{
	if ($pas1 && $pas2)
		{
			//$template = "/([0-9]*[a-Z]*[_]*[\.]*[\-]*){10,}/";
	
			//if (if (eregi("['\<|\>|\?|\!|\&]", $fname))) 
				
			// if pasword has invalid symbols < > ? ! & 
			if ( preg_match("['\<|\>|\?|\!|\&|\'|\"]", $pas1) == 1){
				$error = __('Password has invalid symbols','newsite2'); 
				echo "$('#passError').html('" . $error . "');";
				return $error;
			}
			// password must be more then 6
			if (strlen ($pas1) < 6)
			{
				$error = __('The length of password must be more then 6','newsite2'); 
				echo "$('#passError').html('" . $error . "');";
				return $error;
			}
			// check if passwords is the same
			if ( strcmp($pas1, $pas2) != 0)
			{
				$error = __('Passwords not the same','newsite2'); 
				echo "$('#passError').html('" . $error . "');";
				return $error;
			}
			$error = '';
			echo "$('#passError').html('" . $error . "');";
			return ;	
		}
		else if (!$pas1) {
			$error = __('Enter password, please!','newsite2'); 
			echo "$('#passError').html('" . $error . "');";
			return $error;	
		}
		else if (!$pas2) {
			$error = __('Enter password confirmation, please!','newsite2'); 
			echo "$('#passError').html('" . $error . "');";
			return $error;	
		}
}
$(document).ready(function() {
// ajax registr form
	$("#m_reg_user_form").submit(function(){ // пeрeхвaтывaeм всe при сoбытии oтпрaвки
		console.log ('in submin js');
		var templateDirectory = objInJs.data + '/modulphp/reg.php';
		var form = $(this); // зaпишeм фoрму, чтoбы пoтoм нe былo прoблeм с this
		//var error = false; // прeдвaритeльнo oшибoк нeт
		/*if form.find('input, textarea').each( function(){ // прoбeжим пo кaждoму пoлю в фoрмe
		($(this).val() == '') { // eсли нaхoдим пустoe
				alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!'); // гoвoрим зaпoлняй!
				error = true; // oшибкa
		}
		});
		*/
		//if (!error) { // eсли oшибки нeт
			var data = form.serialize(); // пoдгoтaвливaeм дaнныe
			console.log (data);
			$.ajax({ // инициaлизируeм ajax зaпрoс
			   type: 'POST', // oтпрaвляeм в POST фoрмaтe, мoжнo GET
			   url: templateDirectory, // путь дo oбрaбoтчикa, 
			   dataType: 'script', 
			   data: data, // дaнныe для oтпрaвки
		       beforeSend: function(data) { // сoбытиe дo oтпрaвки
		            form.find('#registerBtn').attr('disabled', 'disabled'); // нaпримeр, oтключим кнoпку, чтoбы нe жaли пo 100 рaз
		       },
		       
		       complete: function(data) { // сoбытиe пoслe любoгo исхoдa
		            form.find('#registerBtn').prop('disabled', false); // в любoм случae включим кнoпку oбрaтнo
					//$('#mess').html('complete');
		        },
				error: function(response) { //Если ошибка
                document.getElementById('mess').innerHTML = "Ошибка ";
                }
		                  
			 });
		//}
		return false; // вырубaeм стaндaртную oтпрaвку фoрмы
	});
}
<?php

echo 
	'<form method="post" action="" id="m_reg_user_form">
		<div id="mess"></div>
		<div id="nameError"></div>
		<div id="emailError"></div>
		<div id="passError"></div>
		<input type="text" name="name" id="Usname" class="regInput" placeholder="' . __('Enter username * ','newsite2') . '"  autocomplete="on" maxlength="30" >
		<input type="email" id="Useremail" class="regInput" name="email" placeholder ="' . __('Enter your email * ','newsite2') . '" autocomplete="on"   >
		<input type="password" class="regInput" id="UserPassword" name="firstps" placeholder ="' . __('Password * ','newsite2') . '" autocomplete="off" maxlength="100" >
		<input type="password" id="PasswordAgain" class="regInput" name="secondps" placeholder ="' . __('Repeat password * ','newsite2') . '" autocomplete="off" maxlength="100" >
		<input id="registerBtn" type="submit" value="' . __('Submit','newsite2') .  '" >
		<input type="hidden" name="submit" value="1">
	</form>';

以上是关于html ajax在标签形式wordpress工作的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 中的 Ajax 调用返回整个 HTML 页面作为响应

Wordpress Datatrans Ajax 实现

如何防止 Wordpress 在摘录中剥离 HTML 标签

如何让 Drupal 使用 Wordpress 形式的编辑代码?

如何让 Drupal 使用 Wordpress 形式的编辑代码?

如何在 wordpress 中通过 jQuery/Ajax 上传图片