زمان جاری: 2012/05/25, 01:01 PM خوش آمدید مهمان گرامی! (ورودعضویت)



مشکل در افزودن عنصر جدید با آژاکس


ارسال موضوع  ارسال پاسخ 
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رتبه موضوع:
 
مشکل در افزودن عنصر جدید با آژاکس
نویسنده پیام
Arman_gh آفلاین
تازه کار
*

ارسال‌ها: 24
تاریخ عضویت: Sep 2010
رتبه: 0
تشکر: 8
15 بار تشکر شده در 10 پست
ارسال: #1
مشکل در افزودن عنصر جدید با آژاکس
سلام.
مدل تور
کد PHP:
<?php
class Tour extends AppModel {
    var 
$name 'Tour';
    var 
$displayField 'title';
    
//The Associations below have been created with all possible keys, those that are not needed can be removed

    
var $belongsTo = array(
        
'Agency' => array(
            
'className' => 'Agency',
            
'foreignKey' => 'agency_id',
            
'conditions' => '',
            
'fields' => '',
            
'order' => ''
        
)
    );

    var 
$hasMany = array(
        
'Hotel' => array(
            
'className' => 'Hotel',
            
'foreignKey' => 'tour_id',
            
'dependent' => false,
            
'conditions' => '',
            
'fields' => '',
            
'order' => '',
            
'limit' => '',
            
'offset' => '',
            
'exclusive' => '',
            
'finderQuery' => '',
            
'counterQuery' => ''
        
)
    );

}
?>
مدل هتل
کد PHP:
<?php
class Hotel extends AppModel {
    var 
$name 'Hotel';
    var 
$displayField 'title';
    
//The Associations below have been created with all possible keys, those that are not needed can be removed

    
var $belongsTo = array(
        
'Tour' => array(
            
'className' => 'Tour',
            
'foreignKey' => 'tour_id',
            
'conditions' => '',
            
'fields' => '',
            
'order' => ''
        
)
    );
}
?>
مشکل هنگامی رخ میده که وقتی میخوام برای بک تور را با استفاده از آژاکس چندین فرم تولید کنم و آنها را با متد saveAll ذخیره کنم. کیک متوجه نمیشه و تنها مدل تور را ذخیره میکنه.
به نظر خودم دلیلش اینه که عناصری که با jquery اضافه شدند پس از لود صفحه بوده.
ویووی add از مدل تور
کد PHP:
<?php echo $html->script(array('select'), array('inline' => false)) ?>
<div id="topheader">

            </div>
            
            <div id="border-header"></div>
                
<div id="right">
            <div id="news" class="rbox">
                <h2>اخبار</h2>
                <div class="newsitems">
                    <ul>
                        <li><span>»</span><a href="#">efdfgdfgsdfg</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس ی</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب dsf gsdf</a></li>
                        <li><span>»</span><a href="#">سیبسیبdf asdfs gsdfg sdfhg sdfh dfhfhب</a></li>
                        <li><span>»</span><a href="#">سdfg sdf g sdfh sfhsdfhیبایب</a></li>
                        <li><span>»</span><a href="#">سیب بل یبس</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                    </ul>
                </div>
            </div>
            <div id="area" class="rbox">
                <h2>مناطق</h2>
                <div class="newsitems">
                    <ul>
                        <li><span>»</span><a href="#">efdfgdfgsdfg</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس ی</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب dsf gsdf</a></li>
                        <li><span>»</span><a href="#">سیبسیبdf asdfs gsdfg sdfhg sdfh dfhfhب</a></li>
                        <li><span>»</span><a href="#">سdfg sdf g sdfh sfhsdfhیبایب</a></li>
                        <li><span>»</span><a href="#">سیب بل یبس</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                        <li><span>»</span><a href="#">سیبسیبلسیبلس یبل سیبذایبایب</a></li>
                    </ul>
                </div>
            </div>
</div>

<div id="left">
            <div id="tours">
                <h2>وارد کردن اطلاعات تور</h2>
                <?php echo $this->Form->create('Tour');?>
                <table>
                    <tr>
                        <th>نام تور</th>
                        <td><?php echo $this->Form->input('Tour.title', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>مبدا</th>
                        <td><?php echo $this->Form->input('Tour.origin', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>مقصد</th>
                        <td><?php echo $this->Form->input('Tour.destination', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>هزینه</th>
                        <td><?php echo $this->Form->input('Tour.price', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>زمان شروع</th>
                        <td><?php echo $this->Form->input('Tour.start_date', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>زمان پایان</th>
                        <td><?php echo $this->Form->input('Tour.finish_date', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>مدارک لازم</th>
                        <td><?php echo $this->Form->input('Tour.required_docs', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>توضیحات</th>
                        <td><?php echo $this->Form->input('Tour.description', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>مدت اقامت</th>
                        <td><?php echo $this->Form->input('Tour.stay_long', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>توضیحات مدت اقامت</th>
                        <td><?php echo $this->Form->input('Tour.stay_note', array('label' => false)); ?></td>
                    </tr>
                </table>
            </div>            
              <?php
                $options 
= array(=> 1,2,3,4,5,6,7,8,9);
                echo 
$this->Form->select('num'$optionsnull, array('escape' => false));
            
?>
        <div id="hotels" class="lbox">
            
            </div>
            <?php echo $this->Form->end(__('ثبت'true));?>
</div>
<div class="clearfix">
    
</div>
            <div id="footer">
                <p>تمامی حقوق محفوظ است.</p>
            </div> 
اکشی get که توسط آجاکس فراخوانی میشه.
کد PHP:
                <h2>هتل ها</h2>
                    <?
php for($i=0$i<=$hnumbers$i++): ?>
                        <table>
                    <tr>
                        <th>نام هتل</th>
                        <td><?php echo $this->Form->input('Hotel.'.$i.'.title', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>قیمت ۲ تخته (هر نفر)</th>
                        <td><?php echo $this->Form->input('Hotel.'.$i.'.two_bed', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>قیمت ۱ تخته (هر نفر)</th>
                        <td><?php echo $this->Form->input('Hotel.'.$i.'.one_bed', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>چند ستاره</th>
                        <td><?php echo $this->Form->input('Hotel.'.$i.'.hotel_star', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>کودک با تخت ۶ تا ۱۲ سال (هر نفر)</th>
                        <td><?php echo $this->Form->input('Hotel.'.$i.'.sixupwithchild', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>کودک بدون تخت ۲ تا ۶ سال (هر نفر)</th>
                        <td><?php echo $this->Form->input('Hotel.'.$i.'.sixupwithoutchild', array('label' => false)); ?></td>
                    </tr>
                    <tr>
                        <th>توضیحات</th>
                        <td><?php echo $this->Form->input('Hotel.'.$i.'.description', array('label' => false)); ?></td>
                    </tr>
                    </table>
                    <?php endfor ?>
2011/05/25 09:30 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 992
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 402
872 بار تشکر شده در 561 پست
ارسال: #2
RE: مشکل در افزودن عنصر جدید با آژاکس
من چیزی نفهمیدم. شاید خستم. اما شما لطف کن زمانی که ذخیره می کنید. قیل از saveAll یک خروجی از محتویات $this->data بگیرید و اینحا قرار بدید. تا ببنیم مشکل از کجاست
2011/05/26 01:39 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
Arman_gh آفلاین
تازه کار
*

ارسال‌ها: 24
تاریخ عضویت: Sep 2010
رتبه: 0
تشکر: 8
15 بار تشکر شده در 10 پست
ارسال: #3
RE: مشکل در افزودن عنصر جدید با آژاکس
کد PHP:
[Tour] => Array
                (
                    [
title] => سیبسیل
                    
[origin] => قفغقف
                    
[destination] => یبلسیبل
                    
[price] => 456346
                    
[start_date] => Array
                        (
                            [
month] => 05
                            
[day] => 25
                            
[year] => 2011
                            
[hour] => 06
                            
[min] => 13
                            
[meridian] => pm
                        
)

                    [
finish_date] => Array
                        (
                            [
month] => 05
                            
[day] => 25
                            
[year] => 2011
                            
[hour] => 06
                            
[min] => 13
                            
[meridian] => pm
                        
)

                    [
required_docs] => سیبر ل
                    
[description] => سیب لسیب سیل
                    
[stay_long] => 
                    [
stay_note] => 
                    [
gender] => 
                )

        ) 
مشکل اینه که فرم مدل هتل که با آجاکس ساخته میشه تو این نیست ولی وقتی بدون آجاکس ساخته میشه $this->data به درستی ساخته میشه و با savelall خم مشکلی نداره.
2011/05/26 01:41 AM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 992
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 402
872 بار تشکر شده در 561 پست
ارسال: #4
RE: مشکل در افزودن عنصر جدید با آژاکس
خوب مشکل از نحوه فراخوانی ایجکستون هست.

برای این که از این موضوع مطمئن بشیم بعد از اینکه فرم هتل به صورت ایجکس فراحوانی و در فرم شما قرار گرفت با فایرباگ کنترل کنید که فیلد های درست رندر شده باشند.

حدس میزنم فیلد های شما به این صورت در فرم قرار نمی گیرند.
کد:
this->Form->input('Hotel.'.$i.'.title', array('label' => false));
<input name="data[Hotel][0][title]" .....
2011/05/26 04:01 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
ارسال موضوع  ارسال پاسخ 


پرش در انجمن: