PDA

View Full Version : چک کردن نام کاربری تکراری با Ajax



profnami
دوشنبه 19 مهر 1389, 19:33 عصر
دوستان من میخوام موقع ثبت نام چک کنم نام کاربری تکراریه یا نه . با وب سرویس اینها رو نوشتم




public class CheckUsername : System.Web.Services.WebService {

public CheckUsername () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

[WebMethod]
//public string HelloWorld() {
// return "Hello World";
//}
public int CheckUser(string Username)
{
string query = "SELECT COUNT(*) FROM Users WHERE UserName=@UserName";
using (SqlConnection conn = new SqlConnection(System.Web.Configuration.WebConfigur ationManager.ConnectionStrings["myDBCon"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@UserName", Username);
conn.Open();
return (int)cmd.ExecuteScalar();
}
}
}
}






function checkUser() {
$.ajax({
type: "POST",
url: "CheckUsername.asmx/CheckUser",
data: "{username: 'nader'}", //" + $('#UserName').val() + "
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$("#duplicate").empty();
if (response.d != "0") {
$("#duplicate").html(' That user name has already been taken');
}
}
});
}




[/code]


<asp:TextBox ID="UserName" runat="server" onblur="checkUser();"></asp:TextBox>
دوستان راهنمایی میکنند یا راه بهتری دارند؟

hofa_7
دوشنبه 19 مهر 1389, 22:42 عصر
خب این کارها رو نمی خواد بکنی شما ، textbox مربوط به username رو بزار توی یک UpdatePanel بعد یه label هم بزار کنارش توی updatepanel بعد خاصیت autopostback اون textbox رو هم true کن و توی رویداد مربوط به OntextChange اون textbox برو یه select از دیتابیس بزن ببین این نام کاربری وجود داره یا نه بعد پیغام مناسب رو توی اون label نشون بده

profnami
دوشنبه 19 مهر 1389, 22:49 عصر
ممنون میشم که جواب دادید . اما بهتره بدونین که استفاده از UpdatePanel میتونه یکی از بدترین کارها باشه . فرض کنید بخوایم 4 تا Update Panel بزاریم تو صفحه میدونید چقدر حجم صفحه بالا میره ؟

mohsen507
دوشنبه 19 مهر 1389, 22:57 عصر
سلام


چك كردن نام كاربري بدون PostBack با استفاده از Ajax (http://www.barnamenevis.org/forum/showthread.php?t=219164)

profnami
دوشنبه 19 مهر 1389, 23:31 عصر
بسیار ممنون دوست عزیز
اما میخوام بدونم این کدها چرا کار نمیکنند ؟ درست هستند یا اشتباه کرده ام ؟

Vahid_moghaddam
سه شنبه 20 مهر 1389, 01:19 صبح
بسیار ممنون دوست عزیز
اما میخوام بدونم این کدها چرا کار نمیکنند ؟ درست هستند یا اشتباه کرده ام ؟
به این شکل تصحیح کنید:

data: {'Username': 'nader'},

profnami
چهارشنبه 21 مهر 1389, 02:03 صبح
خیر نشد . بنده کد ها رو تغییر هم دادم :




<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax.aspx.cs" Inherits="TestPages_Ajax_Ajax" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="../../Scripts/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#UserName").change(checkUser);
});
function checkUser() {
$.ajax({
type: "POST",
url: "WebServices/UserService.asmx/CheckUser",
data: "{'username': '" + $('#UserName').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$("#duplicate").empty();
if (response.d != "0") {
$("#duplicate").html(' That user name has already been taken');
}
}
});
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div id="register">
<fieldset>
<legend>Register</legend>
<div class="row">
<span class="label">User Name:</span>
<asp:TextBox ID="UserName" runat="server"></asp:TextBox><span id="duplicate"></span>
</div>
<div class="row">
<span class="label">Password:</span>
<asp:TextBox ID="Password" runat="server"></asp:TextBox>
</div>
<div class="row">
<span class="label">&nbsp;</span>
<asp:Button ID="btnRegister" runat="server" Text="Register" />
</div>
</fieldset>
</div>
</form>
</body>
</html>



فایل UserService.asmx تو فولدر WebServices گذاشتم
قاعدتا باید کار کنه

raziee
دوشنبه 03 آبان 1389, 17:58 عصر
بررسي وجود نام كاربر با استفاده از jQuery Ajax در ASP.Net (http://vahidnasiri.blogspot.com/2009/02/jquery-ajax-aspnet.html)

jQuery Ajax و نحوه صحيح ارسال مقادير به يك وب سرويس (http://vahidnasiri.blogspot.com/2009/11/jquery-ajax.html)

رو مطالعه کنید.

majnun
دوشنبه 03 آبان 1389, 20:04 عصر
بهترین راه اینه که از وب سرویس استفاده کنید

http://barnamenevis.org/forum/showthread.php?t=255429

بالا یه پروژه گذاشتم که با وب سرویس و سمت کلاینت به بانک وصل میشه و دستور اینسرت و سلکت رو انجام میده

میتونی ازش استفاده کنی عزیز