ajax + php
olá galera. peguei este tutorial no site do imasters
http://www.imasters.com.br/artigo/3918/jav...os_sem_refresh/
porem gostaria de customiza-lo para 3 niveis de acesso e me ocorre um problema não consigo passar a variavel empresa para a outra página
seguem as páginas
test1.php
<?phpinclude("inc/functions.php");conectar();?><script type="text/javascript">function Dados(valor) { //verifica se o browser tem suporte a ajax try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch(ex) { try { ajax = new XMLHttpRequest(); } catch(exc) { alert("Esse browser não tem recursos para uso do Ajax"); ajax = null; } } } //se tiver suporte ajax if(ajax) { //deixa apenas o elemento 1 no option, os outros são excluídos document.forms[0].unidade.options.length = 1; idOpcao = document.getElementById("opcoes"); ajax.open("POST", "unidades.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { //enquanto estiver processando...emite a msg de carregando if(ajax.readyState == 1) { idOpcao.innerHTML = "Carregando...!"; } //após ser processado - chama função processXML que vai varrer os dados if(ajax.readyState == 4 ) { if(ajax.responseXML) { processXML(ajax.responseXML); } else { //caso não seja um arquivo XML emite a mensagem abaixo idOpcao.innerHTML = "--Primeiro selecione a empresa--"; } } } //passa o código do empresa escolhido var params = "empresa="+valor; ajax.send(params); } } function processXML(obj){ //pega a tag unidade var dataArray = obj.getElementsByTagName("unidade"); //total de elementos contidos na tag unidade if(dataArray.length > 0) { //percorre o arquivo XML paara extrair os dados for(var i = 0; i < dataArray.length; i++) { var item = dataArray[i]; //contéudo dos campos no arquivo XML var codigo = item.getElementsByTagName("id")[0].firstChild.nodeValue; var descricao = item.getElementsByTagName("nome")[0].firstChild.nodeValue; idOpcao.innerHTML = "--Selecione uma das opções abaixo--"; //cria um novo option dinamicamente var novo = document.createElement("option"); //atribui um ID a esse elemento novo.setAttribute("id", "opcoes"); //atribui um valor novo.value = codigo; //atribui um texto novo.text = descricao; //finalmente adiciona o novo elemento document.forms[0].unidade.options.add(novo); } } else { //caso o XML volte vazio, printa a mensagem abaixo idOpcao.innerHTML = "--Primeiro selecione a empresa--"; } }</script><span class="titulo">CADASTRO DE FUNCIONÁRIO</span><table border="0" align="center"><form action="" method="POST" name="frmAjax"><input type="hidden" name="id_func" id="id_func"><tr> <td class="direita">Empresa</td> <td colspan=2 class="esquerda"><select name="empresa" onChange="Dados(this.value);"><option value=0>---Selecione Abaixo---</option><?php $sql="select e.id_empresa, e.nome_empresa from empresa as e";$resultado=pg_exec($sql);while($linha = pg_fetch_array($resultado)){$id_empresa = $linha["id_empresa"];$nome_empresa = $linha["nome_empresa"];echo "<option value=\"$nome_empresa\">$nome_empresa</option>\n";}?></select></td></tr><tr> <td class="direita">Unidade</td> <td colspan=2 class="esquerda"><select name="unidade"><option id="opcoes" value=0>---Selecione Abaixo---</option></select></td></tr><tr> <td class="direita">Departamento</td> <td colspan=2 class="esquerda"><select name="depto"><option value=0>---Selecione Abaixo---</option></select></td></tr></form></table>
unidades.php
<?phpinclude("inc/functions.php");conectar();//RECEBE PARÃMETRO $empresa = $_POST["empresa"]; //QUERY $sql = "SELECT u.id_unidade, u.nome_unidade FROM unidade as u, empresa as e WHERE e.nome_empresa = '$empresa' ORDER BY u.nome_unidade"; echo $sql; //EXECUTA A QUERY $resp = pg_exec($sql); $row = pg_num_rows($resp); //VERIFICA SE VOLTOU ALGO if($row) { //XML $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; $xml .= "<unidades>\n"; //PERCORRE ARRAY for($i=0; $i<$row; $i++) { $id = pg_result($resp, $i, "id_unidade"); $unid = pg_result($resp, $i, "nome_unidade"); $xml .= "<unidade>\n"; $xml .= "<id>".$id."</id>\n"; $xml .= "<nome>".$unid."</nome>\n"; $xml .= "</unidade>\n"; }//FECHA FOR $xml.= "</unidades>\n"; //CABEÇALHO Header("Content-type: application/xml; charset=iso-8859-1"); }//FECHA IF (row) //PRINTA O RESULTADO echo $xml; ?>aguardo a ajuda de todos
abraço
Discussão (10)
Carregando comentários...