Cmaskedtextfield هیچ مقداری را بر نمی گرداند

[rtl]

با سلام. یک Cmaskedtextfield در یک فرم به عنوان یک textField ایجاد کرده ام. ولی وقتی که مقداری را در فرم برایش میزنم، NULL را در $_POST به جای مقدارش بر میگردونه.

مشکل چیه؟:huh::(

[/rtl]




$this->widget('CMaskedTextField', array(

        'name' => 'position',

        'mask' => '999',

        'value'=> isset($model['position']) ? $model['position'] : '',

        'htmlOptions' => array(

        'size' => 5,

        ),

        )); 



[right][rtl]

[font="Tahoma"]با فرض اینکه متغیر $model یک آبجکت از نوع CActiveRecord باشه کد رو به این صورت تغییر بده[/font][/rtl]

[left]


$this->widget('CMaskedTextField', array(

        'model' => $model

        'attribute' => 'position',

        'mask' => '999',

        //'value'=> isset($model['position']) ? $model['position'] : '', you don't need it

        'htmlOptions' => array(

            'size' => 5,

        ),

));

[/left][font="Tahoma"]

[rtl]اگر هم که $model فقط یک آرایه ساده است من مشکلی توی کدت نمیبینم شاید مشکل از جای دیگه ای باشه[/font]

[/rtl]

[/right]

[font="Tahoma"][rtl]این رو اضافه کن:[/rtl]




'model' => $model



[rtl]این رو حذف کن:[/rtl]




'value'=> isset($model['position']) ? $model['position'] : '',



[rtl]که البته دوستمون هم در بالا به همین اشاره کردند.[/rtl]

[/font]

[rtl]برای این کد، مدلی که در پشت آن کار می کند اصلا CActiveRecord یا CFormModel و یا اصلا از نوع CModel نیست بلکه به منظور نیاز خاصی که داشتم ناچار شدم که خودم یک مدل دستی ایجاد کنم. پس عملا استفاده از پراپرتی model$ منتفی است و می مونه استفاده از پراپرتی های ‘name’ و ‘value’ که مشکل با این ها است. وقتی فرم submit میشه $_POST مربوط به این فیلد null بر می گردونه.

[/rtl]

[rtl][font="Tahoma"]

هر جور مدلی هم که باشه، فکر میکنم با extend کردن کلاستون از CFormModel و تعریف attribute هاتون در ابتدای کلاس به صورت public میتونید از مزایا و ویژگی های ActiveForm بهره مند بشید و انجام اینکار رو پیشنهاد میکنم.

اصل رو خراب نکنید به نفع خودتونه.

[/font][/rtl]

[rtl]نه متأسفانه چون مدل مبربوطه در موقع اجرا باید تولید بشه ناچار خودم یک مدل براش ایجاد کردم که همانطور که بالا هم گفتم از CModel استفاده نمی کنه. حالا اون ویدجت چرا مشکل داره؟

[/rtl]

[rtl][font="Tahoma"]ویجت مشکلی نداره، با اصل کاری که داری میکنی مشکل دارم، شاید هم چون اشرافی روی سناریوی پروژت ندارم اشتباه میکنم.

[/font][/rtl]

[font="Tahoma"][rtl]اگه مشکل تو خروجی و گرفتن پست هست (یعنی value موقع ساختن درست فرستاده میشه) خوب چرا برا پر کردن پست از جاوا اسکریپت استفاده نمی کنید

مثلا این مقادیر که تو ajax استفاده میشه

بعد success هم که میتونید کاربر رو هرجایی بفرستید[/rtl][/font]




'type'=>'POST',  

'data'=>'js:$("#yourform").serialize()',