Edit.View.php中的showQa_cate_name()方法function showQa_cate_name(){
require_once ('modules/QA_home/QA_ask/db_ask.php');
$projecttable3 = new projecttable3;          //定义一个实例对象
$projecttable3->setDBMng($this->m_dbManage);   //操作句柄

$headerdata = $projecttable3->getDefaultShowItems();    //获取默认的数据 一个qa_sort_id字段一个qa_sort_name 字段·
$queryFeild = array();   
$queryFeild[] = $projecttable3->getTableID(); // 增加一个id
foreach ((array)$headerdata as $hd){
$queryFeild[] = $hd['fldname']; //获取数据 付给$queryFeild
}

$orderby = null;   //为空 下面不参与排序


$tableData = $projecttable3->getData($queryFeild,$orderby); //获得数据 写入$tableData
foreach ($tableData as $ud){
$udarray= $ud['qa_sort_name'];       //读取表中的一个qa_sort_name字段

}
$this->m_smarty->assign("udarray", $udarray);
}tpl代码如下:
<tr>
<td width=20% nowrap align=right> <{$APP_STRING.QA_CATE_NAME}>
</td>
<td width=70% align=left> <select name="" style="width:150px" action="index.php?module=QA_home&submodule=QA_ask&action=Edit&request=showQa_cate_name" >

<{foreach from=$udarray key=value item=item}>
<option value="<{$item.value}>" <{if $tabledata.qa_sort_name == $item.value}>selected="selected"<{/if}>><{$item.value}></option>
<{/foreach}>
</select> </td>
 </tr>
现在想把$udarray数组(一维的)中的数据(即字段为qa_sort_name的数据)读入到 tpl模板中的下拉列表中 
但没显示 求高手解答

解决方案 »

  1.   

    自己测试一下,
    在方法中打印一下数组看看有没有值print_r($udarray);
    如果没有值说明你的方法不对;
    有值的话,说明你的foreach循环中的option……那段代码有问题
      

  2.   

    在DISPLAY中调用了这个方法 然后print_r后 打印了分类字段(qa_sort_name)中的最后一个数据 
      

  3.   

    看你的方法中 foreach循环中的$udarray 这个变量,应该是个数组;
    你应该是要把读取的数据放在$udarray数组中,而不能单独的是一个变量,
    这样读出来,后面的就把前面的数据覆盖了,读出来的当然就只有最后一个了
      

  4.   

    服务端这边:
    foreach ($tableData as $ud){
         $udarray[]= $ud['qa_sort_name'];       //这里 $udarray[]  
         //最好加个 $udarray["qa_sort_name的ID值"] = $ud['qa_sort_name']; 
            
     }
    //输出结果应该是:  array(2 => "selec1",3=>selec2);
    $this->m_smarty->assign("udarray", $udarray);客户端:
    <{foreach from=$udarray key=value item=item}>        
          <option value="<{$value}>" ><{$item}></option>
     <{/foreach}>
    先看看是不是正确的.
      

  5.   

    或则说:
    $tableData = $projecttable3->getData($queryFeild,$orderby); //获得数据 写入$tableData
    //如果这边 $tableData 是查询出来  数组的话  比如 array(0 => array('id'=>1,'qa_sort_name' => 'aa'),1=> array('id'=>1,'qa_sort_name'=>'bb').... );
    直接给下面代码就行:
    $udarray = $tableData;
    $this->m_smarty->assign("udarray", $udarray);客户端:
    <{foreach from=$udarray key=value item=item}>        
        <option value="<{$item.id}>" ><{$item.qa_sort_name}></option>
    <{/foreach}>试试
      

  6.   

    改了两个地方 现在可以了 谢拉
    $this->udarray[]= $ud['qa_sort_name'];<option value="<{$item}>" <{if $tabledata.qa_sort_name == $item.value}>selected="selected"<{/if}>><{$item}></option>