2011-12-06 51 views
49

Estoy leyendo un libro sobre desarrollo de html (que soy bastante nuevo) y a pesar del hecho que el libro acaba de publicar su primera publicación hace un mes (noviembre de 2011), el autor es un codificador experimentado y tal vez usa # para la acción en un formulario es de la vieja escuela?¿qué <form action = "#"> y <form method = "post" action = "#> do?

Porque estoy tratando de obtener la esencia del código de ejemplo y no puedo encontrar una explicación de form action="#" pesar de la búsqueda de

<form action="#"> 

en google, el SO y en www.w3schools.com.

¿Alguien sabe qué significa la acción # para los formularios?

+4

http://w3fools.com/ – Jakub

+1

acción especifica dónde se enviará la información. en el ejemplo, usted encontró que el formulario probablemente se presente con javascript –

+0

. Parece un código de muestra incorrecto, casi nunca tendría que hacer eso. Incluso si está usando javascript para enviar el formulario, no es necesario codificar una "acción" falsa. –

Respuesta

50

Acción normalmente especifica el archivo/página que el formulario se envía a (usando el método descrito en el parámetro de método (correo, obtener etc.))

Una acción de # indica que la forma se mantiene en el mismo página, simplemente con el sufijo de la url con un #. Se usa de manera similar en los anclajes. <a href=#">Link</a> por ejemplo, se mantendrá en la misma página.

Por lo tanto, el formulario se envía a la misma página, que luego procesa los datos, etc.

+0

¿Por qué harías esto para una acción de formulario? Un ancla que entiendo, pero no una forma. – Nik

+3

@Nik porque algunas veces las acciones de su servidor son lo suficientemente simples como para operar en una página. Lo uso a menudo cuando construyo una página simple de búsqueda en bases de datos en PHP. Es más simple que tener dos páginas para tus acciones simples. –

+1

¿La página acaba de publicarse solo? – Nik

20

action="" resolverá a la dirección de la página. action="#" se resolverá en la dirección de la página + #, lo que significará un identificador de fragmento vacío.

Hacer esto último podría evitar una navegación (carga nueva) a la misma página y en su lugar tratar de saltar al elemento con la identificación en el identificador de fragmento. Pero, dado que está vacío, no saltará a ninguna parte.

Por lo general, los autores simplemente ponen # en atributos href-like cuando no van a usar el atributo donde están usando scripting. En estos casos, podrían simplemente usar action="" (u omitirlo si la validación lo permite).

3

La etiqueta # le permite enviar sus datos al mismo archivo. Lo veo como un proceso de tres pasos:

  1. consultar una base de datos para poblar una de
  2. Permitir al usuario cambiar los datos en forma
  3. Vuelva a enviar los datos a la base de datos mediante el script php

Con el método = '#' puede hacer todo esto en el mismo archivo.

Después de que se ejecute la consulta de envío, la página se volverá a cargar con los datos actualizados de la base de datos.

Cuestiones relacionadas