修复Cakephp Form FIeld类型单选按钮中的选项

时间:2009-09-08 10:20:44

标签: jquery cakephp

我正在使用像

这样的Cakephp代码
   <?php foreach ($viewfields as $r): 

                          if($r['Attribute']['type']=='radio')
            {

&GT;

   <script type="text/javascript">
    jQuery.noConflict();
   jQuery(document).ready(function($){


    $("#"+<?=$r['Attribute']['id'];?>).each(function() { 

    type= "<?=$r['Attribute']['type'];?>";
    attribute_id="<?=$r['Attribute']['id'];?>";
if(type=="radio")
{
   var ht = $.ajax({
   type: "GET",
   url: "http://localhost/FormBuilder/index.php/forms/viewChoices/"+attribute_id,
   async: false
   }).responseText;



       var myObject = eval('(' + ht + ')');

 var data = myObject;var j=0;
 $.map(data.choices, function(i){ j++; 
 alert(i.choice);
     return i.choice;});  
     }//type==radio
        });//each
 });//jquery

 </script>


<?php


         echo $form->input('field', array(
        'type' => 'radio','legend'=>$r['Attribute']['label'],
       'separator' => '--separator--',
        'options' => array() 
   ));



 }//if php type == radio

 endforeach; ?>

alert(i.choice); /提醒我选择标签性别为男性和女性 标签为“经验为是和否..

如何将男性和女性置于'选项'=&gt; array()..请建议我...

2 个答案:

答案 0 :(得分:0)

客户端(即在浏览器上运行的JavaScript)提取了这些选项,因此您无法在服务器端的PHP代码中使用它们(即CakePHP FormHelper)。

上面的PHP代码一旦运行,就会生成一个带有JavaScript块的页面。这将发送到用户的浏览器。页面加载后,它会从服务器请求一个选项列表。

此时编辑已发送到客户端的页面为时已晚,除非您使用更多JavaScript。

您可能需要考虑在CakePHP控制器操作中获取这些选项,然后在视图中传递它们。这将允许您在将页面发送到客户端之前在FormHelper中的视图中使用它们。

答案 1 :(得分:0)

你可以试试这个。

'options' => array( 'Male'=>'Male', 'Female'=>'Female' )