Валидиране на input и натискане на submit

C++ JAVA
Post Reply
emptyy
Нов
Нов
Posts: 18
Joined: Tue Sep 18, 2012 10:43 am

Валидиране на input и натискане на submit

Post by emptyy » Wed Apr 08, 2020 12:47 pm

Здравейте, опитвам се да постигна нещо, но от няколко дни не намирам решение.

Полето <input type="text" name="nickname" ако е свободно да продължи регистрацията, ако е заето името, да не му позволява да натисне бутона value="Регистрация!".

Code: Select all

<script>
	function checkAvailability() {
		$("#loaderIcon").show();
		jQuery.ajax({
			url: "check_availability.php",
			data:'nickname='+$("#nickname").val(),
			type: "POST",
			success:function(data){
				$("#user-availability-status").html(data);
				$("#loaderIcon").hide();
			},
			error:function (){}
		});
	}
</script>

<form method="post" action="">
	<table>
		<tr><td>Никнейм: </td><td><input type="text" name="nickname" id="nickname" onBlur="checkAvailability()" style="width: 200px;" required /> <span id="user-availability-status"></span></td></tr>
		<tr><td>Парола: </td><td><input type="text" id="password1" name="password" style="width: 200px;" required />&nbsp; &nbsp; <script>$('#password1').passStrengthify();</script></td></tr>
	</table>
	<br /><br />
	<center><input type="submit" name="nickname" value="Регистрация!"/></center>
</form>
check_availability.php

Code: Select all

<?php
if(!empty($_POST["nickname"])) {
	$sql = mysqli_query($conn, "SELECT * FROM user WHERE nickname='".$_POST["nickname"]."'");
	$user_count = mysqli_num_rows($sql);
	
	if($user_count > 0) {
		echo "<span class='status-not-available' style='color:#D60202;'>Този никнейм, вече е регистриран!</span>";
	}else{
		echo "<span class='status-available' style='color:#2FC332;'>Този никнейм, е свободен!</span>";
	}
}
?>
by dakata__92 » Wed Apr 08, 2020 1:29 pm
С PHP връщаш JSON. Ajax го обработва и връща отговор, като prop взима id на бутона за регистрация и го деактивира. JavaScript-а ти трябва да е в края на документа, или поне след формата. Може да ти се наложи да сложиш и кода в

Code: Select all

$(document).ready(function () { \\ Тук});

Code: Select all

<?php
if(!empty($_POST["nickname"])) {
	$sql = mysqli_query($conn, "SELECT * FROM user WHERE nickname='".$_POST["nickname"]."'");
	$user_count = mysqli_num_rows($sql);
	
	if($user_count > 0) {
		$returnArray = [
			'status' => 1,
			'data' => "<span class='status-not-available' style='color:#D60202;'>Този никнейм, вече е регистриран!</span>",
		];
		echo json_encode($returnArray);
	}else{
		$returnArray = [
			'status' => 0,
			'data' => "<span class='status-available' style='color:#2FC332;'>Този никнейм, е свободен!</span>",
		];
		echo json_encode($returnArray);
	}
}
?>
<form method="post" action="">
	<table>
		<tr>
			<td>Никнейм: </td>
			<td>
				<input type="text" name="nickname" id="nickname" onBlur="checkAvailability()" style="width: 200px;" required /> 
				<span id="user-availability-status"></span>
			</td>
		</tr>
		<tr>
			<td>Парола: </td>
			<td>
				<input type="text" id="password1" name="password" style="width: 200px;" required />&nbsp; &nbsp; 
				<script>$('#password1').passStrengthify();</script>
			</td>
		</tr>
	</table>
	<br /><br />
	<center><input type="submit" id='register' name="nickname" value="Регистрация!"/></center>
</form>

<script>
	function checkAvailability() {
		$("#loaderIcon").show();
		jQuery.ajax({
			url: "check_availability.php",
			data:'nickname='+$("#nickname").val(),
			type: "POST",
			success:function(data){
				$("#user-availability-status").html(data);
				var json = $.parseJSON(data);
				if (json.status > 0) {
					$('#register').prop("disabled", true);
				} else {
					$('#register').prop("disabled", false);
				}
				$("#user-availability-status").html(json.data);
				$("#loaderIcon").hide();
			},
			error:function (){}
		});
	}
</script>
Go to full post

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3357
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Валидиране на input и натискане на submit

Post by dakata__92 » Wed Apr 08, 2020 1:29 pm

С PHP връщаш JSON. Ajax го обработва и връща отговор, като prop взима id на бутона за регистрация и го деактивира. JavaScript-а ти трябва да е в края на документа, или поне след формата. Може да ти се наложи да сложиш и кода в

Code: Select all

$(document).ready(function () { \\ Тук});

Code: Select all

<?php
if(!empty($_POST["nickname"])) {
	$sql = mysqli_query($conn, "SELECT * FROM user WHERE nickname='".$_POST["nickname"]."'");
	$user_count = mysqli_num_rows($sql);
	
	if($user_count > 0) {
		$returnArray = [
			'status' => 1,
			'data' => "<span class='status-not-available' style='color:#D60202;'>Този никнейм, вече е регистриран!</span>",
		];
		echo json_encode($returnArray);
	}else{
		$returnArray = [
			'status' => 0,
			'data' => "<span class='status-available' style='color:#2FC332;'>Този никнейм, е свободен!</span>",
		];
		echo json_encode($returnArray);
	}
}
?>
<form method="post" action="">
	<table>
		<tr>
			<td>Никнейм: </td>
			<td>
				<input type="text" name="nickname" id="nickname" onBlur="checkAvailability()" style="width: 200px;" required /> 
				<span id="user-availability-status"></span>
			</td>
		</tr>
		<tr>
			<td>Парола: </td>
			<td>
				<input type="text" id="password1" name="password" style="width: 200px;" required />&nbsp; &nbsp; 
				<script>$('#password1').passStrengthify();</script>
			</td>
		</tr>
	</table>
	<br /><br />
	<center><input type="submit" id='register' name="nickname" value="Регистрация!"/></center>
</form>

<script>
	function checkAvailability() {
		$("#loaderIcon").show();
		jQuery.ajax({
			url: "check_availability.php",
			data:'nickname='+$("#nickname").val(),
			type: "POST",
			success:function(data){
				$("#user-availability-status").html(data);
				var json = $.parseJSON(data);
				if (json.status > 0) {
					$('#register').prop("disabled", true);
				} else {
					$('#register').prop("disabled", false);
				}
				$("#user-availability-status").html(json.data);
				$("#loaderIcon").hide();
			},
			error:function (){}
		});
	}
</script>

emptyy
Нов
Нов
Posts: 18
Joined: Tue Sep 18, 2012 10:43 am

Re: Валидиране на input и натискане на submit

Post by emptyy » Wed Apr 08, 2020 3:53 pm

Сега започвам да се уча със java-script и не разбрах това

Code: Select all

$(document).ready(function () { \\ Тук});
Но и без него всичко е точно +1

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1603
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 165
Location: Parse error: unexpected "}" in /home/index.php on line 26

Re: Валидиране на input и натискане на submit

Post by anonimen » Wed Apr 08, 2020 4:17 pm

emptyy wrote:
Wed Apr 08, 2020 3:53 pm
Сега започвам да се уча със java-script и не разбрах това

Code: Select all

$(document).ready(function () { \\ Тук});
Но и без него всичко е точно +1
https://stackoverflow.com/questions/307 ... -in-jquery

Post Reply