index.php
ela lista tds os dados de uma tabela do bd (php/mysql), com a opcao de deletar ou editar o registro e possui uma div em baixo (id=edit) que possui um form que será usado para editar os dados de um registro após clicar em editar.
O meu problema está na parte de EDITAR o registro. Vou explicar a logica q eu fiz: ao clicar em editar ... o ajax manda o ID do registro pra pagina PHP (acoes.php) .. nela o php faz a consulta na tabela WHERE id='$_GET[id]' e assim pode-se pegar os dados NOME e IDADE. O que eu prcizo... e mandar esses 2 dados devolta pra index.php dentro dos campos do form (que estão da div id="edit") !
<script type="text/javascript">function executeEditar(acao, id){ try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch ( e ) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch ( e ) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest != 'undefined' ) { try { xmlhttp = new XMLHttpRequest(); } catch ( e ) { xmlhttp = false; } } if (xmlhttp) { xmlhttp.onreadystatechange = editarConteudo; xmlhttp.open('GET', 'acoes.php?acao='+acao+'&id='+id, true); xmlhttp.setRequestHeader('Content-Type','text/xml'); xmlhttp.setRequestHeader('encoding','ISO-8859-1'); xmlhttp.send(null); } }function editarConteudo(){ if ( xmlhttp.readyState == 4) { // Completo if ( xmlhttp.status == 200) { // resposta do servidor OK document.getElementById("edit").style.display="block"; //document.getElementById("div_lista").innerHTML = xmlReq.responseText; } else { alert( "Problema: " + xmlhttp.statusText ); } }}--></script> <table width="580" height="25" border="0" cellpadding="0" class="normal"> <tr> <td width="8%" bgcolor="#D1D1D1"><div align="center"><strong>Del</strong></div></td> <td width="8%" bgcolor="#D1D1D1"><div align="center"><strong>Edit</strong></div></td> <td width="74%" bgcolor="#D1D1D1"><strong>Nome</strong></td> <td width="10%" bgcolor="#D1D1D1"><div align="center"><strong>Idade</strong></div></td> </tr> </table> <? $host = "localhost"; // servidor$ux = "root"; // usuario do bd$senx = "123"; // senha do bd$bdx = "testes"; // bd$coneccao = mysql_connect($host , $ux , $senx ) or die ("Erro ao se conectar ao mysql ... ");$coneccao_bd = mysql_select_db($bdx)or die ("Erro ao se conectar a base de dados ... ");//------------------------------------------------------------------------------------------------echo"<table width='580' border='0' cellpadding='2'>";$sql1 = mysql_query("SELECT * FROM membros ORDER BY nome ASC"); $n=0;while($dados = mysql_fetch_array($sql1)) {echo" <tr id='linha_".$dados[id]."' "; if ($n % 2 == 0){ echo"bgcolor='#DDDDDD'"; } echo" class='normal'> <td width='8%'><div align='center'><a href='#' onclick=\"java script:executeAcao('deletar','$dados[id]')\">X</a></div></td> <td width='8%'><div align='center'><a href='#' onclick=\"java script:executeEditar('editar','$dados[id]')\">?</a></div></td> <td width='74%'>#$dados[id] $dados[nome]</td> <td width='10%'><div align='center'>$dados[idade]</div></td> </tr>"; $n++;}echo"</table>";?><div id="edit" style="display:none"><fieldset><b><legend><span class='normal'>Editar dados</span></legend></b> <table width="580" border="0" class="normal"> <tr> <td width="10%" scope="col">Nome:</td> <td width="90%" scope="col"><input name="nome_edit" value="" type="text" class="campos" id="nome_edit" size="40" maxlength="50"></td> </tr> <tr> <td scope="col">Idade:</td> <td scope="col"><input name="idade_edit" type="text" class="campos" id="idade_edit" size="2" maxlength="2"></td> </tr> <tr> <td scope="col"> </td> <td scope="col"><input type="button" value="Editar" class="campos" name="carregador" id="carregador" lang="pt-br" title="Carregador" ></td> </tr> </table></fieldset></div>
acoes.php
switch($_GET["acao"]){ case'editar': $consulta = mysql_query("SELECT * FROM membros WHERE id='$_GET[id]'"); $dados = mysql_query($consulta); print' document.getElementById("edit").innerHTML = xmlhttp.responseText; '; break; }
sou iniciante em ajax... e nao quase nada ainda !
como fazer ?
Edição feita por: Paulo André, 14/10/2007, 22:03.
Só faltou usar as tags [CODEBOX]. =]