سؤال

أريد أن تجعل عرض نموذج تماما في مربع جويديالوغ.

ما فعلته هو أن لدي وظيفة نموذجية لهذا لدي عرض الملفات التي تم إنشاؤها بواسطة مؤشر الابتكار العالمي.

ما أريد - عند النقر على معرف لكل سجل على الفهرس.فب يجب فتح مربع جويديالوغ بدلا من تقديم ملف العرض.

عندما يتم الوصول إلى صفحة الفهرس فإنه يعرض جميع السجلات لنموذج العمل و يطفو على السطح مربع جويديالوغ عرض السجل الأول (إد=1 سجل)

وعرض عرض للسجلات المتبقية على صفحة الفهرس.

فهرس.بي إتش بي

<?php
  $this->breadcrumbs=array(
 'Jobs',
);

$this->menu=array(
array('label'=>'Create Jobs','url'=>array('create')),
array('label'=>'Manage Jobs','url'=>array('admin')),
);
?>

<h1>Jobs</h1>

<?php $this->widget('bootstrap.widgets.TbListView',array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>

_عرض.بي إتش بي

<?php 
   $target = 'window.location='."'".$this->createUrl('jobs/index')."'";
 $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
  'id'=>'mydialog',
 // additional javascript options for the dialog plugin
  'options'=>array(
    'title'=>'View Job..',
    'autoOpen'=>true,
  'buttons' => array(
array('text'=>'Route','click'=> 'js:function(){'.$target.'}'),
array('text'=>'Cancel','click'=> 'js:function(){$(this).dialog("close");}'),
),
  'height'=>400,
 'width'=>450,
 'show'=>'fade',
 'hide'=>'fade',
   ),
 ));

    //define the model
  // $model=new Jobs;
 echo 'dialog content here';
 $this->renderPartial('/jobs/view',array('model'=>$data));

 $this->endWidget('zii.widgets.jui.CJuiDialog');

// the link that may open the dialog
 echo CHtml::link('open dialog', '#', array(
'onclick'=>'$("#mydialog").dialog("open"); return false;',
 ));
 ?>

<div class="view">

<b><?php echo CHtml::encode($data->getAttributeLabel('job_id')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->job_id),array('view','id'=>$data->job_id)); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('job_code')); ?>:</b>
<?php echo CHtml::encode($data->job_code); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('job_title')); ?>:</b>
<?php echo CHtml::encode($data->job_title); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('job_desc')); ?>:</b>
<?php echo CHtml::encode($data->job_desc); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('job_lastdate')); ?>:</b>
<?php echo CHtml::encode($data->job_lastdate); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('job_photo')); ?>:</b>
<?php echo CHtml::encode($data->job_photo); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('job_file')); ?>:</b>
<?php echo CHtml::encode($data->job_file); ?>
<br />

<?php /*
<b><?php echo CHtml::encode($data->getAttributeLabel('job_createtime')); ?>:</b>
<?php echo CHtml::encode($data->job_createtime); ?>
<br />

*/ ?>

</div>

رأي.بي إتش بي

 <h1>View Jobs #<?php echo $model->job_id; ?></h1>

 <?php $this->widget('bootstrap.widgets.TbDetailView',array(
'data'=>$model,
'attributes'=>array(
    'job_id',
    'job_code',
    'job_title',
    'job_desc',
    'job_lastdate',
    'job_photo',
    'job_file',
    'job_createtime',
),
)); ?>

تحكم أكتيونفيو()

 public function actionView($id)
 {

    $this->render('view',array(
        'model'=>$this->loadModel($id),
    ));
 }

لم أحصل على ما هو الخطأ في التعليمات البرمجية الخاصة بي.ساعدني في حل هذه المشكلة..يعطيكم الصّحة..

هل كانت مفيدة؟

المحلول

على افتراض فهمت مشكلتك هناك مشاكل زوجين مع إعلان القطعة الخاصة بك.

1.المعرف الخاص بك ليس فريدا لكل عنصر واجهة مستخدم على الشاشة.التغيير 'id' => 'mydialog' إلى شيء مثل "dialog_{$data->id}".تأكد من تغيير onclick معرف مسج لمطابقة هذا المعرف.

2.لديك autoOpen تعيين إلى true.اضبطه على false.

أيضا.كنت مرددا 'dialog content here' في كل حوار :).

في صحتك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top