Buenas tardes,
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!';
}
}