علی
6 سال پیش توسط علی مطرح شد
14 پاسخ

سوال در مورد AJAX در php سوال ساده

سلام دوستان خسته نباشین
یه سوال دارم در مورد ایجکس ؟؟
یه صفحه دارم که توش میخوام نظرات کاربران و پرسش و پاسخ رو نمایش بدم زیر توضیحات بصورت تب منتها بر اساس اینکه روی کدوم تب کلیک شده می خوام یک درخواست ایجکس ارسال کنم به سرور تا فقط محتوای مربوط به همون تب رو برام برگردونه
مشلی که دارم اینکه نمی دونم آدرس درخواست ایجکس رو چطوری باید ست کنم بر اساس اینکه روی کدوم تب داره کلیک میشه من می خوام یک متد از داخل کلاس php فراخوانی بشه و محتوای مربوط به تب رو از سرور برگردونه چطوری باید این متد از داخل کلاس رو در ادرس درخواست اجکس قرار بدم ؟؟؟


ثبت پرسش جدید
Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 6 سال پیش مطرح شد
1

سلام
@sardar

کد باید بزارید تا راهنماییتتون کنیم
در خواست رو میتونید به صورت get یا post بفرستید
متغیر هارو از این سمت بفرستید
از اون سمت دریافت کنید و توی متد مورد نظر ازشون استفاده کنید


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش آپدیت شد
1

`<?php

class product
{

function __construct(argument)
{
    # code...
}

/**
 * method for switch tab index
*/
public function SwitchTabByIndexNumber($productID = NULL , $tabIndexNumber = NULL){
    switch ($tabIndexNumber) {
        case 0:
            return $this->getComment();
            break;
        case 1:
            return $this->getAsk();
            break;
        case 2:
            return $this->getProductInfo();
            break;

        default:
            # code...
            break;
    }
}
public function getComment(){
    //code for fetch from database
}
public function getAsk(){
    //code for fetch from database
}
public function getProductInfo(){
    //code for fetch from database
}

}
?>

<div id="child_tab">
<section></section>
<section></section>
<section></section>
<section></section>
</div>
<script>
/ show_more child tab/

$(".tab li").click(function(){
    var indexli = $(this).index();
    var url = "";
    var data = {'liNumber':indexli};
    var current_section = $("#child_tab section").eq(indexli);
    $.post(url,data,function(response){
      current_section.html(response);
    });

});

</script>

``
داخل کلاس php یه متد هست که بر اساس شماره تب یه سری متد رو فراخوانی میکنه و مقادیر رو از دیتابیس مس خونه و بر می گردونه حالا بنده می خوام ادرس url در خواست ایجکس رو تنظیم کنم روی این متد تا براساس شماره تب یه سری داده از سرور برگردونده بشه ولی نمی دونم چطوری تنظیم کنم ؟؟؟
کد جاوا اسکریپتم داره شماره تب ها رو می گیری و بر اساس پاسخ مقادیر رو نسبت میده به html تگ والد یعنیsection صفحات جداگانه هستن و در مسیرهای مختلف قرار دارن اینجا برای راحتی کدها رو یکجا اوردم


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
1

اگر تعداد تب‌ها زیاد نیست٬ اطلاعات همه رو بگیرید و در آبجکت های مختلف ذخیره کنید. در این حالت فقط باید آبجکتی که نمایش داده میشه رو عوض کنید


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش آپدیت شد
1

داداش نمی خوام سختش کنم .تو این حالت چطوری ادرس درخواست رو تنظیم کنم کلا چهارتا تب هستش تو سیستم ام وی اس خیلی راحت پیاده میشه ولی تو شکل شی گرا ممی دونم چطوری url درخواسن ایجکس رو تنظیم کنم .😴😴😴😴😴😴
@Alimotreb
@hesammousavi


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش آپدیت شد
1

بچه ها کسی راهنمایی نداره
@masoudproton


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش مطرح شد
1

برادران لطفا یکی راهنمایی کنه
@Alimotreb


فخرالدین لنگی
تخصص : برنامه نویس وب، آندروید و سیست...
@fakhraddin 6 سال پیش مطرح شد
1

با سلام و خسته نباشید خدمت کاربر عزیز علی
لطفا کدهای دو فایل رو به شکل درست قرار بدید تا بنده یا دوستان شما رو راهنمایی کنیم چون مشکل شما به نظرم ساده است و قابل حل فقط کد دو بخش کنترلر و ویو رو اگه زحمت بکشید یک بار دیگه با دقت قرار بدید


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش مطرح شد
0

داداش هر جوری قرار می دم اینطوری میشه شما فقط لطفا بگید بنده چطوری از داخل کلاس بصورت ایجکس یک متد رو فراخوانی کنم.


فخرالدین لنگی
تخصص : برنامه نویس وب، آندروید و سیست...
@fakhraddin 6 سال پیش مطرح شد
0

این کار خیلی راحته برای ارسال اطلاعات به متد یک کنترلر یا هر کلاس دیگه ایی توی لاراول کافیه شما یک روت با متد دلخواه خودتون حالا پست یا گت تعریف کنید و به عنوان url متد ایجکس اون روت رو قرار بدید اگر بازم نیاز به راهنمایی داشتید بفرمایید تا با ذکر مثال بگم


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش مطرح شد
1

نه داداش سیستم لاراول نیست بصورت شی گرا با php می خوام پیاده کنم تو سیستم ام وی سی این کا رو کردم فقط نمی دونم تو شی گرایی که کنترلر نداریم چطوری باید از داخل کلاس یک متد رو بصورت ایجکس فراخوانی کنم


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش مطرح شد
0

Url رو چطوری ست کنیم


فخرالدین لنگی
تخصص : برنامه نویس وب، آندروید و سیست...
@fakhraddin 6 سال پیش آپدیت شد
0

با سلام مجدد خدمت داداش علی
این کار رو ما توی php خام به روش زیر انجام می دیم من برات با یک مثال توضیح می دم که ان شا الله مشکلت رفع بشه
فرض کن یک کلاس داریم به اسم animal که می خواییم به تابع getName دخلش دسترسی داشته باشیم

class animal
{     
  function getName()
  {
    return "lion";
  }
}

این از تعریف کلاس و توابع php مرحله بعد ایجاد یک هندلر درون یک فایل دیگه است مثال فایل animalHamdler هندلر رو به شکل زیر تعریف می کنیم :

require_once 'animal.php'; 

$myAnimal = new animal(); 
$result = $myAnimal->getName(); 
echo $result;

حالا خیلی راحت توی فایلمون این هندلر رو فراخونی می کنیم

<script type=text/javascript>
  $.ajax({
    type: "POST",
    url: "animalHandler.php",
    dataType: "html",
    async: false,
    success: function(data) {
      result=data;
    }
  });    
</script>

که اینجا خروجی من چون html نوع dataType اون انتخاب کردم اگه موارد دیگه مثل json می تونی خروجی رو به شکل json تعریف کنی
بازم اگه موردی بود من در خدمتتم دوست عزیز


علی
تخصص : طراح وب سایت , برنامه نویس php...
@sardar 6 سال پیش مطرح شد
0

سلام داداش فخرالدبن
ممنون بابت لطفی که کردی و کد ارسال کردی
حالا من نیاز دارم دو تا پارامتر هم تو درخواست ایجکس ارسال کنم تا دوتا پارامتر مثلا به متد getname پاس داداه بشه تا براساس سویچی که انجام می شه بکسری ماد فراخوانی بشه و اطلاعات رو از دیتابیس بخونه


فخرالدین لنگی
تخصص : برنامه نویس وب، آندروید و سیست...
@fakhraddin 6 سال پیش مطرح شد
0

سلام و مرسی از شما
خوب شما می تونید پارامتر رو به روش POST ارسال کنید و از متغیر POST پی اچ پی مقادیر رو فراخونی کنید مثال :

<script type=text/javascript>
  $.ajax({
    type: "POST",
    url: "animalHandler.php",
    dataType: "html",
    data: {
        var1: test1,
        var2: test2
    },
    async: false,
    success: function(data) {
      result=data;
    }
  });    
</script>

بعد با استفاده از متد POST پی چی اپی توی هندلرمون مقادیر رو می گیریم

require_once 'animal.php'; 

$var1 = $_POST['var1'];
$var2 = $_POST['var2'];

$myAnimal = new animal(); 
$result = $myAnimal->getName($var1, $var2); 
echo $result;

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام