因为项目用到datatable表格加载后台数据,要连表查询虚拟机选中的策略状态,所以想到先把策略表内容取出来,组成一个''字符串,在遍历虚拟机列表时把他的策略值拼成 'value="1"' 这样的字符串,再利用explode()和implode() 函数,组成新的字符串返回给前台,就实现了选中状态。
<span><span> 1 </span><span>$option</span> = '<select class="sla_list">'<span>;
</span><span> 2 </span>
<span> 3 </span><span>//</span><span> 取出所有策略</span>
<span> 4 </span><span>$sla_query</span> = <span>$this</span>->db->select('sla_id, name')->get('sla'<span>);
</span><span> 5</span> <span>$sla_res</span> = <span>$sla_query</span>-><span>result_array();
</span><span> 6</span> <span>if</span> (!<span>empty</span>(<span>$sla_res</span><span>)) {
</span><span> 7</span> <span>$option</span> .= '<option value="0">未保护</option>'<span>;
</span><span> 8</span> <span>foreach</span> (<span>$sla_res</span> <span>as</span> <span>$k1</span> => <span>$v1</span><span>) {
</span><span> 9</span> <span>$option</span> .= '<option value="' . <span>$v1</span>['sla_id'] . '">' . <span>$v1</span>['name'] . '</option>'<span>;
</span><span>10</span> <span> }
</span><span>11</span> <span>$option</span> .= '</select>'<span>;
</span><span>12</span>
<span>13</span> } <span>else</span><span> {
</span><span>14</span> <span>$option</span> .= '<option value="0">未保护</option></select>'<span>;
</span><span>15</span> <span> }
</span><span>16</span>
<span>17</span>
<span>18 </span><span>//</span><span> 选中默认的保护策略</span>
<span>19 </span><span>$vm_query</span> = <span>$this</span>->db->select('sla_id')->where('vm_id', <span>$</span>vm_id)->get('task_vm', 1<span>);
</span><span>20</span> <span>$vm_res</span> = <span>$vm_query</span>-><span>row_array();
</span><span>21 </span><span>if</span> (<span>is_null</span>(<span>$vm_res</span>['sla_id'])) <span>$res</span>['sla_id'] = 0<span>;
</span><span>22 </span><span>$selected</span> = 'value="' . <span>$vm_res</span>['sla_id'] . '"'<span>;
</span><span>23 </span><span>$new_str_arr</span> = <span>explode</span>(<span>$selected</span>, <span>$option</span><span>);
</span><span>24</span> <span>$new_option</span> = <span>implode</span>(" {<span>$selected</span>} selected", <span>$new_str_arr</span>);</span>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号