PDA

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>
&nbsp; نام کاربری :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="username" class="mac" style="font-family:tahoma; font-size:20px; "/><br />
پسورد :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="password" class="mac" name="password" style="font-family:tahoma; font-size:20px; "/><br />
تکرار پسورد :&nbsp;&nbsp;&nbsp;
<input type="password" class="mac" name="password_again" style="font-family:tahoma; font-size:20px; "/><br />
&nbsp;ایمیل :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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("");
});
}


الان مشکل چیه که به صورت آژکس ثبت نمیکنه؟؟