Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας θέλω να φτιάξω μια φόρμα και με το που γράφει ο άλλος κάτι σε κάποιο πεδίο πχ username αν αυτό είναι μικρότερο από 4ις χαρακτήρες να κοκκινίζει το πεδίο.... να γίνεται αυτόματα χωρίς να πρέπει να πατηθεί το submit!

Από javascript γνωρίζω κάποια πολύ λίγα πράγματα οπότε αν μου πείτε για jquery μάλλον θα ζαλιστώ!!! :P

 

Αν ζητάω πολλά μπορείτε να μου το πείτε!!! Θα το καταλάβω :P

Δημοσ.

Καλησπέρα,

 

Όντως η πιο σωστή προσέγγιση είναι αυτή της jQuery. Αλλά εφόσον θέλεις κάτι πιο απλό, δοκίμασε το εξής

 

>
           <style type="text/css">
               .valid {border:solid 1px #CCC;}
               .invalid {border:solid 1px #FF0000;}
           </style>
           <input type="text" onkeyup="javascript:if(this.value.length <= 3)  this.className = 'invalid'; else this.className = 'valid'; " />

 

Στο onkeyup event, ελέγχεις το μήκος της λέξης που έχει το textbox και ανάλογα του βάζεις τη κλάση invalid ή valid. Μετά με css, ορίζεις πως θα φαίνεται η κάθε κλάση.

 

 

Δημοσ.

http://www.position-relative.net/creation/formValidator/

 

Άν έχεις λίγο χρόνο αξίζει να ασχοληθείς με το jQuery γενικοτερα, γιατί είναι κάτι που θα το βρείς μπροστά σου

σε όποιο έργο και αν κάνεις στο μέλλον.

 

Επίσης είναι πολύ πιο απλή από ότι αρχικά φαίνεται.

Δημοσ.

Επίσης είναι πολύ πιο απλή από ότι αρχικά φαίνεται.

 

Το πιστεύεις ότι αυτό που με "φοβίζει" στην jquery είναι ότι την θεωρώ υπερβολικά πολύπλοκη; :P

Δημοσ.

Αυτό που ζητάς γινεται πολύ εύκολα με HTML5 αλλα δεν ξερω ποιοι browsers δεν το υποστηριζουν. Λογικα πλεον όλοι.

 

Oρίστε ενα παραδειγμα αυτού που θες. Το 1 input ειναι κοκκινο μεχρι να ξεπεράσεις τους 3 χαρακτήρες.

 

 

>
<!DOCTYPE html>
<html>
<head>
<title>Web Forms with HTML 5</title>
<style type="text/css">
input:required 
{
   border: 1px red solid;
}

input:invalid
{
background-color: red;
color: white;
}


</style>

</head>
<body>
<form>
<input type="text" required pattern="[a-zA-Z0-9]{4,}">
<br>
<input type="text">
</forum>


</body>
</html>


 

 

Δημοσ.

Άντε και χρησιμοποιώ εγώ jquery.... για να κάνω check για το αν υπάρχει το username και το email θα πρέπει να φτιάξω php αρχείο για το username και άλλο php αρχείο για το email;;;;

 

Αν ξέρει κάποιος ξέρει παράδειγμα και για τα δύο μαζί ας μου το δώσει να το μελετήσω γιατί εγώ δεν βρίσκω!!! :(

Αν έχει βίντεο ακόμα καλύτερα :)

Δημοσ.

Για να κάνεις check αν υπάρχει το username και το email θα πρέπει να φτιάξεις κάποια php scripts. Με jQuery, και την ajax συνάρτηση της, μπορείς να τα καλέσεις και να ενημερώσεις το χρήστη σχετικά.

 

'Εστω ότι το username_exists.php απαντάει με true αν υπάρχει το username ή false αν δεν υπάρχει.

 

Ενδεικτικά, θα μπορούσες να γράψεις κάτι τέτοιο:

 

>
function check_username() {
var uname = jQuery('#username').val();  // Παίρνω το username που έδωσε ο χρήστης στο textbox με id=username
$.ajax({
   url: "username_exists.php?username=" + uname, // Εδώ ορίζω σαν παράμετρο το username που θέλω να τσεκάρω στο php script.
   context: document.body,
    success: function(data){
       if(data == "true") 
           alert('Το username υπάρχει ήδη!');
  	else
    		alert('Το username είναι διαθέσιμο');
	}, 
	error: function(){
         alert('Πρόβλημα με ajax');
   } 
});
} 

Δημοσ.

Ωραία!

Αν κάνω έλεγχο για το username και το email στο ίδιο αρχείο τι γίνεται;;;;

Απλα φτιάχνω μια συνάρτηση για το email και βάζω μετά το "?" την μεταβλητή email;;;

Δημοσ.

To ξέρω ότι σας έχω πρίξει αλλά.......... ελπίζω να καταλαβένεται την κατάσταση μου :P

Στον παρακάτω php κώδικα τι αλλαγές θα πρέπει να κάνω ώστε να το χρησιμοποιήσω για έλεγχο του username και του email μέσω jquery????

 

><?php

//Ορισμός των μεταβλητών και εκχώρηση τιμών σε αυτές
$username = mysql_escape_string($_POST['username']);
$password = md5(mysql_escape_string($_POST['password']));
$email = mysql_escape_string($_POST['email']);
$name = mysql_escape_string($_POST['name']);
$surname = mysql_escape_string($_POST['surname']);
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$date = "$year-$month-$day";




if($username){
	include "connect.php";
	
	//Έλεγχος για το αν υπάρχει το username
	$query = mysql_query("SELECT username FROM user_data WHERE username='$username'");
	$count = mysql_num_rows($query);
	
	if($count!=0){
		die("Το ψευδώνυμο υπάρχει ήδη! Παρακάλω επιλέξτε κάποιο άλλο!");
	}
	
	//Έλεγχος για το αν υπάρχει το email
	$query = mysql_query("SELECT email FROM user_data WHERE username='$email'");
	$count = mysql_num_rows($query);
	
	if($count!=0){
		die("Το Email υπάρχει ήδη!");
	}
	
	//Εκχώρηση δεδομένων στη βάση
	mysql_query("INSERT INTO user_data(username,password,name,surname,birthdate,email) VALUES('$username','$password','$name','$surname','$date','$email')") or die("Η εγγραφή δεν μπόρεσε να ολοκληρωθεί!");
	
	$register = mysql_affected_rows();
	if($register!=0){
		echo "Η εγγραφή ολοκληρώθηκε με επιτυχία!";
	}
}

?>

</body>
</html>

Δημοσ.

Με τον παρακάτω κώδικα μου εμφανίζεται το μήνυμα για το αν είναι διαθέσιμο ή οχι το username αλλά δεν εμφανίζεται το μήνυμα "διαλέξτε ένα ψευδώνυμο" εξαρχής αλλά μόνο αν γράψω κάτι και το σβήσω...

ποιο είναι το λάθος;;;;;;

 

*******Τελικά το πρόβλημα ήταν το "if(isset($_POST['username']))" γιατί το είχα βάλει επειδή είχα display error και δεν το ήθελα αλλά έκανα το display_errors τις Php off και λύθηκε το πρόβλημα :P

 

αρχείο

test.php

>
</head>
<body  onload="user_check();">
<form name="form">
	Username:<input type="text" id="username" name="username">
	<br />
	<input type="submit" value="submit">
	<br/>
	<div id="feedback"></div>
</form>
<div id="feedback"></div>
</body>
</html>

 

αρχείο

user2.php

>
<?php
if(isset($_POST['username'])){
	include('connect.php');

	$username = mysql_real_escape_string($_POST['username']);
	
	$query = mysql_query("SELECT username FROM user_data WHERE username='$username'");
	$count = mysql_num_rows($query);
	
	if($username==NULL){
		echo "Διαλέξτε ένα ψευδώνυμο!";
	}
	if(strlen($username)<=3){
		echo "Πολύ μικρό!";
	}
	else{
		if($count<1){
			echo "Το ψευδώνυμο είναι διαθέσιμο!";
		}else{
			echo "Το ψευδώνυμο δεν είναι διαθέσιμο!";
		}
	}
	
}
?>

 

και το αρχείο

check.js

>
function user_check(){

$(document).ready(function() {
$('#feedback').load('user2.php').show();
	
$('#username').keyup(function() {
	$.post('user2.php', {username: form.username.value},
	function(result) {
		$('#feedback').html(result).show();
	});
});
});
}

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...