Bueno básicamente estás en el foro equivocado, ya que todo lo que pides se hace con html y javascript, nada que ver con PHP
Para detectar cuando se oprime enter y que no se envie el formulario, debes omitir el botón type="submit" en el formulario, esto hará que cualquier enter que pulses, no quiera enviar el formulario.
es decir, si haces los siguiente
Código HTML:
Ver original<form name="f" action="algo.php" > <input type="text" name="dato1" /> <input type="text" name="dato2" /> <input type="button" name="enviar" value="Enviar Datos" />
no tendrás problemas y en javascript puedes hacer lo siguiente:
Para detectar que se oprime enter en el campo de texto, y para que se envie el formulario cuando le des click al botón de enviar, pon lo siguiente:
Código Javascript
:
Ver originalwindow.onload = function () {
document.forms['f'].dato1.onkeypress = detectarTecla;
document.forms['f'].dato2.onkeypress = detectarTecla;
document.forms['f'].enviar.onclick = enviarDatos;
}
// Esta funcion se la puedes asignar a cualquier campo de texto
function detectarTecla ( evt ) {
// Con la siguiente línea de código sabemos cual fue el campo al cual se le oprimio enter
// y queda una referencia de este guardada en la variable campo.
var campo = evt.target;
// si depues de lo anterior se hiciera: alert(campo.name); el código mostraria el valor del
// atributo name del campo al que se le dio enter, este caso: dato1, y dependiendo de este
// valor, se pueden ejecutar algunas acciones con un if, switch, o incluso algo más complicado
// dividiendo el valor para saber que campo es y ciclar al siguiente, con un substr o substring
//Con esta línea de código, podemos saber cual tecla se oprimio, no funciona
// en internet explorer ya que IE trata diferente los eventos, como parte del objeto window
var tecla = evt.charCode;
if (tecla == 13) {
// Aquí iria el código para que salte al próximo campo, sería algo complicado si fueran varios
// campos y tuvieras que ciclar entre estos, pero con este ejemplo solo tienes que hacer lo
// siguiente:
document.forms['f'].dato2.focus()
// o también
document.forms['f']['dato2'].focus()
// ambas hacen lo mismo
}
}
Tienes varias opciones dependiendo del tipo de cosas que quieras hacer, estudia mucho evento y DOM