感谢您的重播并在AJAX上重复使用它而不做任何更改。这是代码。
的观点:
$HTML ='
Configurar PRO |
---|
';
foreach ($processos as $processo){ $HTML.= sprintf(' %s.%s %s $processo['cerne'], $processo['codigo'], $processo['nome'], $processo['id'], $processo['id']); $HTML.= $objControlCERNE->montarPratica($processo); $HTML.=' |
}
$HTML.='
';echo $HTML;
?>
控制器。 obterProcessos和obterPraticas查询数据库以获取过程和练习的列表。
的JS处理
function habilitada(pratica_id, processoinfo, idResponse){
var task = "<?php echo TASK.'habilitar_desabilitarPraticas&pratica_id='; ?>"+pratica_id;
alert(task+' idResponse: '+idResponse);
enviarViaAjax(task,idResponse);
}
class Control_PRO{
public function obterProcessos(){
try{
$objPRO_DAO = new PRO_DAO();
return $objPRO_DAO->obterProcessos();
}catch(Exceptio $ex){
if ($ex->getCode()==0){
echo '
';
debug_print_backtrace();
throw new Exception('Error no metodo: '. __METHOD__ . ' tabela: '. $tabela, 1);
}
throw new Exception($ex->getMessage());
}
}
private function obterPraticas($processo_id){
try{
$objPRO_DAO = new PRO_DAO();
return $objPRO_DAO->obterPraticas($processo_id);
}catch(Exceptio $ex){
if ($ex->getCode()==0){
echo '
';
debug_print_backtrace();
throw new Exception('Error no metodo: '. __METHOD__ . ' tabela: '. $tabela, 1);
}
throw new Exception($ex->getMessage());
}
}
最后montar PRATICA是HTM段是会被AJAX
public function montarPratica($processo){
$HTML ='
Práticas chave Inhabilitar ';$objControlPRO = new Control_PRO();
$praticas = $objControlPRO->obterPraticas($processo['id']);
if (count($praticas)){
foreach ($praticas as $pratica){
$HTML.=sprintf('
%s.%s.%s.%s ',$processo['PRO'],
$processo['codigo'],
$pratica['codigo'],
$pratica['nome'],
$pratica['id'],
$pratica['id'],
"tabela_".$processo["id"],
$pratica['ativada']==1 ? 'checked' : "");
}
}
return $HTML.sprintf('
Nova prática:
Adicionar
',$processo['id'],
$processo['id']);
}
}
和AJAX
function createRequestObject() {
var ro;//objeto request
if(navigator.appName == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
var http_A01 = createRequestObject();//agora a variável http_A01 contém os atributos de um objeto request.
var divResposta;
function enviarViaAjax(task, idResponse) {
//alert("task:"+task+" idResponse:"+idResponse);
divResposta = idResponse;
http_A01.open("post", ""+task);//abrindo conexao
http_A01.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_A01.setRequestHeader("charset", "charset=UTF-8");
http_A01.onreadystatechange = handleResponse_A01;//assim que o satus for alterado entrará no método de resposta
http_A01.send();//enviando os paramentros para o teste.php
}
function handleResponse_A01() { //metodo de retorno
/* readyState:
0: request not initialized
1: server connection established
2: request received
3: processing request
4: request finished and response is ready
*/