View Full Version : سوال: فراخوانی متد سمت سرور در jquery
elham366
دوشنبه 17 مرداد 1390, 21:12 عصر
سلام
من یه table دارم و میخوام وقتی روی یه ردیفش کلیک میشه بر اساس یکی از فیلداش یه اطلاعاتی از پایگاه داده خونده بشه و توی یه div نمایش داده بشه! این خوندن اطلاعات توی یه متد سمت سرور قراره انجام بشه، چه طوری این تابع رو توی jquery صدا کنم؟ با jquery.ajax نتونستم اینکار رو بکنم، میشه راهنمایی کنید...
alismith
سه شنبه 18 مرداد 1390, 04:43 صبح
سلام
چرا حتما میشه
شما مثلا با همون ajax می تونید مقدار مورد نظر رو به سرور ارسال کنید و پاسخ رو در div نمایش بدید
به همین راحتی.!
البته من یک مثال براتون میزنم ;)
$(document).ready(function(){
$("tr[name=row]").click(function(){
var dataString = $(this).find("td[name=FieldName]").html();
////////////////////
$.ajax({
type: "POST",
url: "page.php", //page path
data: dataString,
success: function(data) {
$("div").html(data);
},
error: function(){
allert("Error");
}
});
});
});
فقط من اینو با nodepad نوشتم ، شما با یک Editor باز کنید ببینید syntax error نداشته باشه
توضیحات row نام tr هست یعنی همه tr iا باید یک نام داشته باشند و fieldname هم نامی هست که شما به td مربوطه می دهید
*نکته: این نام باید در تمام tr ها فقط به اون td مربوطه داده شود
مثلا :
<tr name="row">
<td></td>
<td name="FieldName[e.g. id]"></td>
<td></td>
</tr>
<tr name="row">
<td></td>
<td name="FieldName[e.g. id]"></td>
<td></td>
</tr>
<tr name="row">
<td></td>
<td name="FieldName[e.g. id]"></td>
<td></td>
</tr>
موفق باشید
alismith
سه شنبه 18 مرداد 1390, 05:10 صبح
یک چیز یادم رفت !
کلید دسترسی آرایه post
مثلا :
$_POST['data_server']
و تابع Ajax
data: dataString
به
data: "data_server=" + dataString
تغییر می کنه
و در نهایت در سمت سرور شما می تونید این مقدار رو به تابع مورد نظرتون بدید و خروجی رو چاپ کنید
مثلا :
<?php
$data = $_POST['data_server']; //dataString
///////////
function funcName($param){
// fetch ...
return result; //result is variable
}
echo funcName($data); // show in Div...
?>
موفق باشید
elham366
سه شنبه 18 مرداد 1390, 11:59 صبح
ممنون از شما...
حالا اگه بخوام یه چیزی مثل Gmail وقتی یه ایمیل جدید میاد، بدون اینکه ما کاری بکنیم میاد توی inboxمون بکنم چی؟ یا مثلا notification توی fb! یعنی بدون اینکه کاربر request بفرسته داره براش از سمت سرور اطلاعات میاد؟ چه جوری میشه اینکار رو کرد؟
alismith
سه شنبه 18 مرداد 1390, 12:11 عصر
والا من خودمم دنبال ی همچین چیزی هستم
دقیق نمی دونم
البته با جاوا اسکریپت میشه همین تابع Ajax رو هر 60ثانیه یک بار اجرا کرد و سرور رو چک کرد اما فکر نکنم این روش درستی باشه!!!
میخای یک تاپیک بزن اینو مطرح کن شاید کسی بلد بود :چشمک:
شایدم آقای موسوی جواب دادن ، از pm که خبری نیست :افسرده: (البته حق با شماست جناب:چشمک:)
یک بار ما رو از انجمن بیرون نکنید :لبخند:
موفق باشید
javad.nic63
سه شنبه 18 مرداد 1390, 14:55 عصر
اینکه بدون درخواست کلاینت از سمت سرور اطلاعاتی فرستاده بشه که غیرممکنه ولی می تونی این درخواست رو مثلاً خیلی کوچک بفرستی تا نتیجه رو سریع بهت بگه و رد و بدل کردن اطلاعات بین کلاینت و سرور خیلی کم باشه.
alismith
سه شنبه 18 مرداد 1390, 15:34 عصر
نه دوست عزیز غیر ممکن که نیست
شاید با بحث port در php بشه :متفکر:
پیشنهادی نداری؟
javad.nic63
چهارشنبه 19 مرداد 1390, 14:01 عصر
اینجا (http://barnamenevis.org/showthread.php?299382-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D8%B2-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D8%AF%D9%88%D9%86-request-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1)و اینجا (http://stackoverflow.com/questions/1086380/how-does-facebook-gmail-send-the-real-time-notification)رو نگاه کن. حرف من هم تأیید میشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.