/***************************************************後臺交互**************************************************/
/**
* 狀態切換
* @param {Object} obj
* @param {Object} table
* @param {Object} fieldAndValue
* @param {Object} whereFieldAndId
*/
function switchStatus (obj, table, fieldAndValue, whereFieldAndId){
var val = (obj.src.match(/yes.gif/i)) ? 0 : 1;
fieldAndValue += '##'+ val;
$.post('/wxbackend/common/switchStatus/flag/0', {'table' : table, 'fieldAndValue' : fieldAndValue, 'whereFieldAndId' : whereFieldAndId}, function(data){
if (data > 0) {
if (fieldAndValue.indexOf('1') > 0) obj.src = '/images/yes.gif';
else obj.src = '/images/no.gif';
}
});
}
/**
* 編輯單個字段
* @param {Object} obj
* @param {Object} table
* @param {Object} fieldAndValue
* @param {Object} whereFieldAndId
*/
function editField(obj, table, fieldAndValue, whereFieldAndId) {
var tag = obj.firstChild.tagName;
if (typeof(tag) != "undefined" && tag.toLowerCase() == "input") {
return;
}
/* 保存原始的內容 */
var org = obj.innerHTML;
var val = Browser.isIE ? obj.innerText : obj.textContent;
/* 創建一個輸入框 */
var txt = document.createElement("INPUT");
txt.value = (val == 'N/A') ? '' : val;
txt.style.width = (obj.offsetWidth + 12) + "px" ;
/* 隱藏對象中的內容,並將輸入框加入到對象中 */
obj.innerHTML = "";
obj.appendChild(txt);
txt.focus();
/* 編輯區輸入事件處理函數 */
txt.onkeypress = function(e) {
var evt = Utils.fixEvent(e);
var obj = Utils.srcElement(e);
if (evt.keyCode == 13) {
obj.blur();
return false;
}
if (evt.keyCode == 27) {
obj.parentNode.innerHTML = org;
}
}
/* 編輯區失去焦點的處理函數 */
txt.onblur = function(e) {
if (Utils.trim(txt.value).length > 0 && txt.value != org) {
fieldAndValue += '##'+ Utils.trim(txt.value);
$.post('/wxbackend/common/switchStatus/flag/1', {'fieldAndValue' : fieldAndValue, 'table' : table, 'whereFieldAndId' : whereFieldAndId}, function(data){
obj.innerHTML = (data != '') ? data : org;
}, 'text');
} else {
obj.innerHTML = org;
}
}
}
/**
* 修改單條記錄
* @param {Object} obj
* @param {Object} table
* @param {Object} fieldList
* @param {Object} whereFieldAndId
*/
function updateRowByPrimaryKey(obj, table, fieldList, whereFieldAndId){
var fields = new Array();
fields = fieldList.split(",");
var fieldAndValue = '';
for (i=0;i<fields.length ;i++){
fieldAndValue += fields[i] + '=>' + $('#'+fields[i]).val() + '##';
}
fieldAndValue = fieldAndValue.substring(0, fieldAndValue.length - 2);
$.post('/wxbackend/common/InsertNewOrUpdateRow/option/update',
{'table' : table, 'fieldAndValue' : fieldAndValue, 'whereFieldAndId' : whereFieldAndId},
function(data){
if (data == 1) alert('添加成功!');
else alert('失敗!');
}
);
}
/**
* 獲取數據
* @param {Object} table
* @param {Object} fieldList ,分隔
* @param {Object} whereFieldAndId
*/
function selectData(table, fieldList, whereFieldAndId){
$.post('/wxbackend/common/selectData',
{'table' : table, 'fieldList' : fieldList, 'whereFieldAndId' : whereFieldAndId},
function(data){
if (data != '') return JSON.parse(data);
else return '';
}
,'text');
}
/**
* 新增單條記錄
* @param {Object} obj
* @param {Object} table
* @param {Object} fieldList ,分隔
*/
function insertNewRow(table, fieldList){
var fields = new Array();
fields = fieldList.split(",");
var fieldAndValue = '';
for (i=0;i<fields.length ;i++){
fieldAndValue += fields[i] + '=>' + $('#'+fields[i]).val() + '##';
}
fieldAndValue = fieldAndValue.substring(0, fieldAndValue.length - 2);
$.post('/wxbackend/common/InsertNewOrUpdateRow', {'table' : table, 'fieldAndValue' : fieldAndValue}, function(data){
if (data == 1) alert('添加成功!');
else alert('失敗!');
});
}
/**
* 刪除單條記錄 通過主鍵
* @param {Object} obj
* @param {Object} table
* @param {Object} whereFieldAndId
*/
function delRowByPrimaryKey(obj, table, whereFieldAndId){
$.post('/wxbackend/common/delRowByPrimaryKey', {'table' : table, 'whereFieldAndId' : whereFieldAndId}, function(data){
if (data > 0) {
var parentObj = obj.parentNode;
parentObj.parentNode.remove();
}else alert('刪除失敗!!');
});
}
PHP:
/**
* 公用狀態切換
*/
public function actionSwitchStatus($flag) {
$this->checkPrivilege('actionSwitchStatus');
$table = isset($_POST['table']) ? '{{'.trim($_POST['table']).'}}' : '';
if (empty($table)) die('0');
$fieldAndValue = isset($_POST['fieldAndValue']) ? explode('##', trim($_POST['fieldAndValue'])) : '';
$whereFieldAndId = isset($_POST['whereFieldAndId']) ? explode('#', trim($_POST['whereFieldAndId'])) : '';
if($table == '{{milk_order}}' && $fieldAndValue[0] == 'best_time'){//訂奶特殊情況
$fieldAndValue[1] = strtotime($fieldAndValue[1]);
}
$sql = "UPDATE $table SET {$fieldAndValue[0]} = :val WHERE {$whereFieldAndId[0]} = :idVal";
$data = array('val'=>$fieldAndValue[1], 'idVal'=>$whereFieldAndId[1]);
$num = YD_MysqlUtil::YD_execute($sql, $data);
if($flag == 1){
$sql = "SELECT {$fieldAndValue[0]} FROM $table WHERE {$whereFieldAndId[0]} = {$whereFieldAndId[1]}";
$result = YD_MysqlUtil::YD_getOne($sql);
if($table == '{{milk_order}}' && $fieldAndValue[0] == 'best_time'){//訂奶特殊情況
$result = date('Y-m-d H:i:s',$result);
}
//修改運費同時修改面運費優惠券金額
if ($table == '{{system_setting}}' && ("{$whereFieldAndId[0]} = {$whereFieldAndId[1]}" == 'id = 6') && ('`value`' == $fieldAndValue[0])) {
$sql = 'UPDATE {{coupon}} SET resist_money = :money WHERE cou_type = 9';
YD_MysqlUtil::YD_execute($sql, array('money'=>$fieldAndValue[1]));
}
echo $result;
//echo $fieldAndValue[1];
}else echo $num;
$content = Yii::app()->session['YD[admin_name]'].'修改表:'.$table.'的'.$whereFieldAndId[0].'=>'.$whereFieldAndId[1].'記錄的'.$fieldAndValue[0].'=>'.$fieldAndValue[1].'字段';
YDLib::admin_log($content);
}
/**
* 獲取數據
*/
public function actionSelectData() {
$this->checkPrivilege('actionSelectData');
$table = isset($_POST['table']) ? '{{'.trim($_POST['table']).'}}' : '';
if (empty($table)) die('0');
$fieldList = isset($_POST['fieldList']) ? trim($_POST['fieldList']) : '';
$whereFieldAndId = isset($_POST['whereFieldAndId']) ? explode('#', trim($_POST['whereFieldAndId'])) : '';
$sql = "SELECT $fieldList FROM $table WHERE {$whereFieldAndId[0]}";
switch ($whereFieldAndId[1]) {
case 'getOne':
$data = YD_MysqlUtil::YD_getOne($sql);
break;
case 'getRow':
$data = YD_MysqlUtil::YD_getRow($sql);
break;
case 'getAll':
$data = YD_MysqlUtil::YD_getAll($sql);
break;
default:
$data = YD_MysqlUtil::YD_getColumn($sql);
break;
}
echo PHPTool::_ToJson($data);
}
/**
* ajax 添加修改新紀錄
*/
public function actionInsertNewOrUpdateRow($option = 'insert'){
$this->checkPrivilege('actionInsertNewOrUpdateRow');
$table = isset($_POST['table']) ? '{{'.trim($_POST['table']).'}}' : '';
if (empty($table)) die('0');
$fieldAndValue = isset($_POST['fieldAndValue']) ? explode('##', trim($_POST['fieldAndValue'])) : '';
if (!empty($fieldAndValue)) {
if ($option == 'insert') {
$data = array();
foreach ($fieldAndValue as $value){
list($key, $val) = explode('=>', $value);
$data[$key] = $val;
}
echo YD_MysqlUtil::YD_insertInto($table, $data) ? '1' : '0';
$content = Yii::app()->session['YD[admin_name]']." $option $table {$_POST['fieldAndValue']}";
YDLib::admin_log($content);
}else {
$whereFieldAndId = isset($_POST['whereFieldAndId']) ? explode('#', trim($_POST['whereFieldAndId'])) : '';
$data = array();
foreach ($fieldAndValue as $value){
list($key, $val) = explode('=>', $value);
$data[$key] = $val;
}
$where = " {$whereFieldAndId[0]} = {$whereFieldAndId[1]} ";
echo YD_MysqlUtil::YD_updateSet($table, $data, $where) ? '1' : '0';
$content = Yii::app()->session['YD[admin_name]']." $option $table {$_POST['fieldAndValue']} {$_POST['whereFieldAndId']}";
YDLib::admin_log($content);
}
}
}
/**
* delRowByPrimaryKey
*/
public function actionDelRowByPrimaryKey() {
$this->checkPrivilege('actionDelRowByPrimaryKey');
$table = isset($_POST['table']) ? '{{'.trim($_POST['table']).'}}' : '';
if (empty($table)) die('0');
$whereFieldAndId = isset($_POST['whereFieldAndId']) ? explode('#', trim($_POST['whereFieldAndId'])) : '';
$sql = "DELETE FROM $table WHERE {$whereFieldAndId[0]} = :val";
$data = array('val'=>$whereFieldAndId[1]);
$num = YD_MysqlUtil::YD_execute($sql, $data);
$content = Yii::app()->session['YD[admin_name]'].'通過主鍵'.$whereFieldAndId[0].' 刪除 表:'.$table.'記錄:'.$whereFieldAndId[1];
YDLib::admin_log($content);
echo $num == 0 ? 0 : 1;
}