he implementado alguna cosa con ajax en un simple insert y en un update. Ahora hay un formulario y al apretar el btón enviar, justo en la línea siguiente, un loading da paso a un mensaje confirmando que el update se ha hecho correctamente. Lo que querría és que el loading y el mensaje substituyeran al form. Adjunto el código. Gracias por vuestra qyuda.
Marc
página php con el form :
Código:
<form action="javascript:insert()" method="post" name="form1"> <!-- Dades categoria --> Nom en català : <input name="categoria_nom_cat" id="categoria_nom_cat" type="text" size="50" maxlength="50" value="Introdueix el nom de la categoria en català" onClick="select()"><br> Nom en castellà : <input name="categoria_nom_cas" id="categoria_nom_cas" type="text" size="50" maxlength="50" value="Introdueix el nom de la categoria en castellà" onClick="select()"><br> <!-- Camps ocults --> <input name="_submit_check" type="hidden" value="1"> <!-- Botó enviar --> <input name="Afegir!" type="submit"> </form> <script language="JavaScript" type="text/javascript"> var frmvalidator = new Validator("form1"); frmvalidator.addValidation("categoria_nom_cat","req","El nom en català és un camp obligatori"); frmvalidator.addValidation("categoria_nom_cas","req","El nom en castellà és un camp obligatori"); </script> </p> <!-- Missatge de resposta d'AJAX --> <div id="insert_response"></div>
código ajax :
Código:
/* ---------------------------- */ /* XMLHTTPRequest Enable */ /* ---------------------------- */ function createObject() { var request_type; var browser = navigator.appName; if(browser == "Microsoft Internet Explorer"){ request_type = new ActiveXObject("Microsoft.XMLHTTP"); } else { request_type = new XMLHttpRequest(); } return request_type; } var http = createObject(); /* -------------------------- */ /* INSERT categoria*/ /* -------------------------- */ /* Required: var nocache is a random number to add to request. This value solve an Internet Explorer cache issue */ var nocache = 0; function insert() { // Optional: Show a waiting message in the layer with ID login_response document.getElementById('insert_response').innerHTML = "<img src='../img-admin/loading.gif'>" // Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding. var categoria_nom_cat= encodeURI(document.getElementById('categoria_nom_cat').value); var categoria_nom_cas = encodeURI(document.getElementById('categoria_nom_cas').value); // Set te random number to add to URL request nocache = Math.random(); // Pass the login variables like URL variable http.open('get', 'a_cat_afe2.php?categoria_nom_cat='+categoria_nom_cat+'&categoria_nom_cas=' +categoria_nom_cas+'&nocache = '+nocache); http.onreadystatechange = insertReply; http.send(null); } function insertReply() { if(http.readyState == 4){ var response = http.responseText; // else if login is ok show a message: "Site added+ site URL". document.getElementById('insert_response').innerHTML = 'Fet!'; } }