View Full Version : سوال: ثبت اطلاعات در دیتابیس با آزاکس
M0TR!X
پنج شنبه 15 خرداد 1393, 14:34 عصر
سلام.
یه فرم ثبت نام کاربر دارم که خیلی ساده طراحی شده.سه تا مقدار رو میگیره و در صفحه بعد وصل میشه به دیتابیس و insert میکنه
حالا میخوام تغییر بدم به آژاکس.
دوستان یه کمکی میکنن؟
M0TR!X
جمعه 16 خرداد 1393, 21:25 عصر
کسی چیزی نمیدونه؟
Mohammadm
جمعه 16 خرداد 1393, 23:39 عصر
یک webservice ایجاد کن و داخلش تابع برای درج داده سمت سرور رو بنویس
مثال زیر از تابع AddIdeaFrien در webservice استفاده کرده و دارای 4 آرگومان به نامهای name – email – message – ID هست یادت باشه طبق مثال زیر اسم پارامترهارو دقیقا مانند نامی که در تابع سمت سرور هست بنویسی.
ID از نوع عدد و بقیه رشته هستند.
در ضمن قبل از نام متد سمت سرو(AddIdeaFrien)ر در قسمت بالای اون این صفت رو درج کن [WebMethod] فضای نامش رو هم اضافه کن .
مقادیر name3 – email3 – message3 – id رو قبل از فراخوانی کد زیر از کنترلهای موجود در فرمت بگیر
بهعنوان مثال
var name3 = document.getElementById('txtfullname').value;
کد زیر برای ارسال درخواست به سمت سرور از طریق
jquery ajax
که میتونی تو رویدادهای مختلف یک تابع بسازی و کد زیر رو داخلش بنویسی
$.ajax({
type: "POST",
url: "WebService.asmx/AddIdeaFriend",
data: "{'name':'" + name3 + "','email':'" + email3 + "','message':'" + message3 + "','ID':" + id + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(‘عملیات با موفقیت انجام شد’);
},
error: function (response) {
alert(‘عملیات با موفقیت انجام نشد’);
}
});
در ضمن url با توجه به برنامت ممکنه تغییر کنه (از طریق آدرس دهی نسبی اقدام کنید)
M0TR!X
دوشنبه 09 تیر 1393, 18:02 عصر
سلام.برنامه که من نوشتم به این شکله.ولی به صورت آژاکس کار نمیکنه.معمولی ثبت میکنه.
فایل register.php
<?php require_once 'connect.php';
if (isset ($_POST['username']) AND isset($_POST['password']) AND
isset($_POST['password_again']) AND isset($_POST['email']) ) {
if (!empty($_POST['username']) AND !empty($_POST['password']) AND
!empty($_POST['password_again']) AND !empty($_POST['email']) ) {
$username = $_POST['username'];
$password = $_POST['password'];
$password_again = $_POST['password_again'];
$email = $_POST['email'];
if ($password != $password_again) {
echo 'عدم تطابق رمز عبور';
} else {
connecttodb();
$query = "SELECT `id` FROM `tbl_user` WHERE `username` = '".mysql_real_escape_string($username)."'";
if ( $query_run = mysql_query($query) ){
$id = mysql_num_rows($query_run);
if ($id!=1) {
$query2 = "INSERT INTO `tbl_user` values ( '',
'".mysql_real_escape_string($username)."',
'".mysql_real_escape_string($password)."',
'".mysql_real_escape_string($email)."')";
if (1) {
echo 'ثبت نام موفقيت';
echo '<meta http-equiv="refresh" content="1;url=index.php" />';
} else {
echo 'خطا در ثبت کاربر';
}
} else {
echo 'اين نام کاربري قبلا ثبت نام کرده است';
}
}
}
} else { echo 'empty';
}
}
?>
submit.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>فرم عضویت</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body style="" dir="rtl">
<div class="form1" style="color:#FFFFF">
<center>
<form action="register.php" method="POST">
</br>
نام کاربری : <input type="text" name="username" class="mac" style="font-family:tahoma; font-size:20px; "/><br />
پسورد : <input type="password" class="mac" name="password" style="font-family:tahoma; font-size:20px; "/><br />
تکرار پسورد :
<input type="password" class="mac" name="password_again" style="font-family:tahoma; font-size:20px; "/><br />
ایمیل : <input type="text" class="mac" align="right" name="email" style="font-family:tahoma; font-size:20px; "/><br /></br>
<button class="button grad transition" style="font-size:20px"; id="submit">ثبت نام</button>
</br></br></br></br><br />
</br></br></br></br>
<a href="index.php" style="text-decoration:none;">برگشت به صفحه نخست</a><br /><br />
<a href="login.php" style="text-decoration:none;">برگشت به صفحه لاگین</a><br /><br />
</form>
</center>
</div>
</body>
</html>
my_script
$("#submit").click( function() {
if( $("#username").val() == "" || $("#pass").val() == "" )
$("#ack").html("Username/Password are mandatory fields -- Please Enter.");
else
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info) {
$("#ack").empty();
$("#ack").html(info);
clear();
});
$("#myForm").submit( function() {
return false;
});
});
function clear() {
$("#myForm :input").each( function() {
$(this).val("");
});
}
الان مشکل چیه که به صورت آژکس ثبت نمیکنه؟؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.