رفتن به مطلب

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


پست های پیشنهاد شده

سلام، ابتدا درخواست می کنم با اینکه خیلی پست طولانی هست لطفاً بخونید چون خیلی حیاتیه برام و خیلی هم جستجو کردم ولی نتونستم مشکل رو حل کنم

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

http://buffernow.com/cascading-dropdown-ajax/

اگه دمو رو ببینید متوجه می شید که چه کاری انجام شده
لینک دمو:
http://buffernow.com/demo/cascadedrpdwn/

از این لینک هم می تونید سمپل رو دانلود کنید
http://www.mediafire.com/?p8al84azf2hh7mz
پسورد فایل فشرده هم اینه: buffernow.com1717

ولی مشکل من اینه که حتی دراپ دان اول هم پر نمیشه تا بخوام بعدی ها رو بر اساس اون پر کنم


مراحلی که من طی کردم تا این سمپل رو روی وردپرس پیاده کنم
صفحات زیر رو در مسیر زیر کپی کردم
wp-content>themes/mytheme

indexjq.php
man_list.php
model_list.php
type_list.php
و به اول هر صفحه یه همچین کدی رو اضافه کردم

<?php
/*
Template Name: templatename
*/
?>


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

این کدهای صفحه indexjq.php هست

<html>
<head>
<title>Buffer Now | Cacaded Select Box</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="JavaScript" src="http://sitename.ir/wp-content/themes/mytheme/js/myminiAJAX.js"></script>
<script language="JavaScript" src="http://sitename.ir/wp-content/themes/mytheme/js/functionsjq.js"></script>
<script language="JavaScript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script>
jQuery().ready(function($){

$('#loading')
    .hide()  // hide it initially
    .ajaxStart(function() {
        $(this).show();
    })
    .ajaxStop(function() {
        $(this).hide();
    })
;

// Ajax Called When Page is Load/Ready (Load Manufacturer)
jQuery.ajax({
                      url: 'man_list.php',
                      global: false,
                      type: "POST",
                      dataType: "xml",
                      async: false,    
                      success: populateComp
                }); 
                
                

//Ajax Called When You Change  Manufaturer
$("#manufacturer").change(function () 
    {
     resetValues();    
     
        var data = { man :$(this).attr('value')    };
    jQuery.ajax({
                      url: 'type_list.php',
                      type: "POST",
                      dataType: "xml",
                      data:data,
                      async: false,    
                      success: populateType
                }); 
    });
    
//Ajax Called When You Change Type of Printer
$("#printertype").change(function () 
    {

        var data = { 
        man :$('#manufacturer').val(),
        typ : $(this).attr('value')
        };
    jQuery.ajax({
                      url: 'model_list.php',
                      type: "POST",
                      dataType: "xml",
                      data:data,
                      async: false,    
                      success: populateModel
                }); 
    });
    
//Do What You Want With Result .......... :)
    $("#printermodel").change(function () 
    {

//'you select Model='+$('#manufacturer').val()+'type='+$('#printertype').val()+'And Model='+$('#printermodel').val()
alert('you select Model = '+$('#manufacturer option:selected').text()+' ,type= '+$('#printertype option:selected').text()+' And Model = '+$('#printermodel option:selected').text()
);
    });
    
    
                
                    });    
    </script>
    
    
    
    <style>
    #loading{
    background:url('loader64.gif') no-repeat;
    height: 63px;
    }
    </style>
</head>

<body >
<p>
Manufacturer:<select name="manufacturer" id="manufacturer" >
<option value="">Please select:</option></select>&nbsp;
Printer type: <select name="printertype" id="printertype" disabled="disabled" >
<option value="">Please select:</option></select>&nbsp;
Printer model:<select name="printermodel" id="printermodel" disabled="disabled" >
<option value="">Please select:</option></select>
</p>
<div id="loading" style="display: none;"></div>
<div id="output" ></div>
</body>
</html>

من فکر می کنم مشکل از این خط باشه
 url: 'man_list.php'
من حتی این آدرس رو به شکل زیر هم دادم ولی مشکل حل نشد
http://sitename.ir/wp-content/themes/mytheme/man_list.php/

لینک به ارسال

دقیقا مشکلتون همون url هست ولی سری دوم هم url رو باز غلط دادینه. باید آدرس برگه ای که از روی اون فایل ساختین رو بدین.پرمالینکش رو ندید بلکه آدرس سایتتون و آی دی اون صفحه رو بدید.

توضیح: توی وردپرس برای دسترسی به توابع اون و در مورد کار شما دسترسی به دیتابیس باید وردپرس فایل php شما رو با بقیه اینکلود کنه تا توی اون فایل به توابع وردپرس دسترسی داشته باشید. در نتیجه باید دنبال راهی باشید که به وردپرس بگید که اون فایل من رو به طریقی اینکلود کن تا کدهاش اجرا بشه. بهترین راهش هم برای آجاکس فکر می کنم این باشه که با استفاده از هوک تمپلیت لود بعد از لود فایلتون با استفاده از تابع die ادامه لود رو توی اون درخواست متوقف کنید.

موفق باشید.

لینک به ارسال

ممنون از پاسخ

پرمالینک اون صفحه این هست

http://agahi4irani.ir/manufacturer/ 

و آی دی هم 133

الان منظورتون این بود که url رو به صورت زیر بدم؟

http://agahi4irani.ir/133/ 

ولی این کار نکرد.

یه توضیح بدم این که من asp.net و #C کار می کردم در محل کار جدیدم ازم خواسته شده که یک سایت رو با وردپرس پیاده سازی کنم، در واقع php و وردپرس رو تازه دارم یاد می گیرم

بنابراین یه کم اصطلاحات برام غریبه هستن.

لینک به ارسال

همچنین به صورت زیر هم دادم آدرس رو ولی باز هم دراپ دان پر نشد:

http://agahi4irani.ir/?p=133

در صورتی که اگه لینک بالا رو بزنید می بینید که داره فایل xml رو از دیتابیس پر میکنه.

ویرایش شده توسط wp-student
لینک به ارسال

خوب چون پرمالینک اون صفحه انگلیسی هست مشکلی پیش نمیاد اگر از همون استفاده کنید یا بنویسید p=133  .

اما در مورد مشکلتون خوب شما دیگه نصف راه رو رفتی اول مطمئن شو همه صفحات رو به همین صورت توی کد جاوا اسکریپتت استفاده کرده باشی، بعدش نگااه کن ببین توی کنسول مرورگر ترجیحا فایرفاکس خطای جاوا اسکریپت داری یا نه.

بعدش مقادیر برگشتی رو توی کنسول مرورگر لاگ کن ببین چیزی که انتظار داری رو آجاکس لود کرده یا نه.

ترجیحا تست هات رو هم روی یه قالب ساده که کد جاوا نداره انجام بده (بهترم هست وردپرس رو روی زامپ نصب کنی برای تست که سریع خسته نشی!)

دیباگ وردپرس رو هم فعال کن.

و غیره...

 

موفق باشی.

لینک به ارسال

توی کنسول چک کردم خطا دارم که در عکس زیر می بینید

http://s1.upload7.ir/uploads/pWP2mWxP.png/errorpng.png

ولی این صفحه که وجود داره چرا می گه موجود نیست؟

این آدرس صفحه نمایش دراپ دان لیست ها هست

http://agahi4irani.ir/cascadedrpdwn/

ویرایش شده توسط wp-student
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...