Web開發中遇到的數據傳遞問題(一)

如何在model層js中獲取control層中的數組變量?
1.在後端php文件中對數組進行json轉換,也就是轉成字符串的形式。
如:$task_phase_conf_json = json_encode($task_phase_conf);

2.在前段js文件中,用eval()對字符串做解析。
var task_phase_conf = eval({$task_phase_conf_json});


如何將model數組變量傳遞到control層?
前端:<input type="checkbox" name="ids[]" value="'+json[i]['uid']+'">
後端:$ids and $str_ids = implode(',',$ids);


如何用ajax獲取數組並在前端動態列出?
前端:
$.post("index.php?do=$do&view=$view&ac=ser",{u:txt_u,type:u_type},
          function(json){
                   if(json.status === undefined){
                        for(var i=0;i<json.length;i++){
                              $('#info_ul').append('<li style="width:200px;float:left;"><input type="checkbox" name="ids[]"        value="'+json[i]['uid']+'">'+json[i]['username']+'</li>');
                         }
                        
                     }else if(json.status==2){
                            art.dialog.alert(json.msg);return false;
                      }
           }    ,'json')
後端:
$user_info=db_factory::query(" select uid,username from ".TABLEPRE."witkey_space where email <> ‘’  and $where ");
if(!$user_info){
        kekezu::echojson('查無此人','2');die();
}else{
        echo JSON($user_info);die();
}

Json處理函數:
/* * ************************************************************
 *
* 將數組轉換爲JSON字符串(兼容中文)
* @param array $array  要轉換的數組
* @return string  轉換得到的json字符串
* @access public
*
* *********************************************************** */
function arrayRecursive(&$array, $function, $apply_to_keys_also = false) {
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
        die('possible deep recursion attack');
    }
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
        } else {
            $array[$key] = $function($value);
        }

        if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
        }
    }
    $recursive_counter--;
}
function JSON($array) {
    arrayRecursive($array, 'urlencode', true);
    $json = json_encode($array);
    return urldecode($json);

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章