Jump to content
Paulo Cabral

AJAX- Ajuda!

Recommended Posts

Paulo Cabral

Boa noite!

Preciso ajuda para elabora uma tarefa par um trabalho que estou a elaborar...

É o seguinte:

Tenho um formulário para a inserção de dados numa BD, na mesma pagina conta a listagem dos registos que estão na base de dados relativos a esse formulários. Nessa listagem encontra-se em cada linha um botão "modificar" para realizar essa mesma acção, é aqui que começa o meu problema... para a modificação de dos dados vou usar a tecnologia ajax e o mesmo formula´rio que é usado para a inserção, vou a base de dados a informação relativa ao registo terá de aparecer no formulário para serem modificados... no formulario tem um campo de inserção de data de aniversário que é um objecto de uma classe que retirei deste site http://www.triconsole.com/php/calendar_datepicker.php (já agora para quem precisar), a minha duvida é como vou "actulizar" a data do objecto com o javascript...

Toda a ajuda é bem vinda...

Muito Obrigado

apresento a seguir codigo:

--- formulário------

<div id="modificar">
<form id="form1"action="insUtentes.php" method="post" name="Utentes" enctype="multipart/form-data">
<input id="id" name="id" type="hidden"/>
<tr><td>Nome :</td><td><input id="nome" name="Nome" type="text" value="Nome Utente" size="20" maxlength="20" /></td></tr>
<?php $D="<input id=\"data\" type=\"date\" type=\"hidden\"/>";


?><tr><td>Data de Nascimento:</td>
<td>
<?php

$myCalendar = new tc_calendar("dataNasc", true);
$myCalendar->setIcon("calendar/images/iconCalendar.gif");
$myCalendar->setDate(01, 03, 1960);
$myCalendar->setPath("calendar/");
$myCalendar->setYearInterval(1960, 2015);
$myCalendar->dateAllow('1960-01-01', '2015-03-01');
$myCalendar->writeScript();
?>
</td></tr>
<tr><td>Foto:</td><td><input name="foto" type="file" id="foto" value="Foto"/></td></tr>
<tr><td><input name="Inserir" type="submit" value="Inserir" /></td></tr>
</form>
</div>
</table>
<?php
listarUtentes();
?>

--- javascript-----

function modificar(ID){
//verifica se o browser tem suporte para a tecnologia ajax
var ajax;
try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP"); //IE
      } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP"); //IE
         }
     catch(ex) {
            try {
			//browser  firefox, Chrome, Safari
               ajax = new XMLHttpRequest();
            }
        catch(exc) {
               alert("Esse browser não tem recursos para uso do Ajax");
               ajax = null;
            }
         }
      }
  
  //se suprtar ajax
  if (ajax){
	  
	  ajax.open("POST","form_modificar.php",true);
	  ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	  
	  //criar os parementros a serem enviados
	  var params = "ID="+ID; //ID do registo a modificar
	  ajax.send(params);
	  
//RESPOSTA 
  ajax.onreadystatechange = function() 
  		{		 
		  if(ajax.readyState==4 ) { //quando a resposta estiver pronta
				if(ajax.responseXML) 
		   		{
//	Recebemos o XMl, agora vamos processa-lo
				//var div = document.getElementById("modificar"); 
				processXML(ajax.responseXML);

				} else {

					div.innerHTML = "... erro";
			   		}
         	}
      }
   }
   
function processXML(obj){
var resultado=obj.getElementsByTagName("Utente");
var div=document.getElementById("modificar");

if(resultado.length > 0){
	var div = document.getElementById("modificar");
	 for(var i = 0 ; i < resultado.length ; i++) {
		var item = resultado[i];

		//contéudo dos campos no arquivo XML
		var id = item.getElementsByTagName("ID")[i].firstChild.nodeValue;
		var nome = item.getElementsByTagName("Nome")[i].firstChild.nodeValue;
		var data = item.getElementsByTagName("Data")[i].firstChild.nodeValue;
		var foto = item.getElementsByTagName("Foto")[i].firstChild.nodeValue;
		//div.innerHTML = resultado[i].firstChild.nodeValue + "<br />";
		//var teste=div.value = resultado[i].firstChild.nodeValue;	
		}
		var form=document.getElementById("form1");
		form.elements[0].value=id;
		form.elements[1].value=nome;
		form.elements[2].value=data;
		form.elements[3].value=foto;

	}
	}
}

Share this post


Link to post
Share on other sites
brunoais

(Acho que vou arranjar aqui uma lista de precondições já q muitos não as seguem (e espero bem q seja só por esquecimento).)

Primeiro torna tudo  thumbup.gif antes de eu te responder. Olhar para esse código assim é muito complicado para a minha cabeça.

[*]Expõe o problema thumbup.gif

[*]Mostra o código relevante da tentativa question.gif

[*]Põe o código dentro de tags code apropriadas para a linguagem exclamation.gif

[*]Diz o que aconteceu que não devia e o que devia acontecer que não aconteceu (N/A)thumbup.gif


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Paulo Cabral

Boa tarde!

Peço desculpa se não esta de forma correcta o problema exposto. Paço a explicar da melhor forma possível...

Tenho um formulário em que um dos campos que o comporem é um objecto de um classe que fui retira-la a o site que já indiquei em cima.

Pretendo que nesse mesmo form que é utilizado para a inserção de dados seja também usado para a modificação de dados.

Usando Ajax o que estou a fazer é ao carregar no botão modificar chamo um script que vai enviar o ID do registo que se quer modificar para um ficheiro em php esse ficheiro vai ao base de dados buscar os dados correpondente a esse ID e envia essa informação em XML para o script que o chamou, esse script trata o xml e coloca os valores no form desejado, o que nao acontece é que o campo onde consta o objecto não sei como utilizar os dados que estao em XML para os usar no objecto!

Share this post


Link to post
Share on other sites
brunoais

falta por o código dentro de tags code um para javascript e outro para HTML


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.