2009-01-08 18 views
18

Tengo una base de datos que mantiene a los residentes de cada casa en una calle determinada. Tengo una página web php 'vista de la casa' que puede mostrar una casa individual y residentes cuando se le da el número de casa usando 'publicación'. También tengo una página web de "vista callejera" que ofrece una lista de las casas. Lo que quiero saber es si puede tener enlaces en la vista de la calle que enlazará con la vista de la casa y publicará el número de la casa al mismo tiempo sin configurar un formulario para cada uno.Cómo publicar datos con un enlace

Saludos

Respuesta

11

Supongo que cada casa se almacena en su propia tabla y tiene un campo 'id', por ejemplo, id de la casa. Por lo que cuando se recorre a través de las casas y las de visualización, se podría hacer algo como esto:

<a href="house.php?id=<?php echo $house_id;?>"> 
    <?php echo $house_name;?> 
</a> 

Luego, en house.php, se llega a la casa Identificación utilizando $_GET['id'], validarlo mediante is_numeric() y luego mostrar su información.

+10

La pregunta dice específicamente la POST – Menasheh

+2

¿Cómo es que Dar Obtener respuesta método es aceptado en la que está pidiendo claramente acerca de método POST –

3

me acaba de utilizar un valor en la cadena de consulta para pasar la información requerida a la página siguiente.

7

No se pueden realizar peticiones HTTP mensaje por <a href="some_script.php">some_script</a>

Sólo tiene que abrir su house.php, encontrar en ella donde se tiene $house = $_POST['houseVar'] y cambiarlo a:

isset($_POST['houseVar']) ? $house = $_POST['houseVar'] : $house = $_GET['houseVar']

Y en el streeview.php crea enlaces como esa :

<a href="house.php?houseVar=$houseNum"></a>

O algo más. Simplemente no sé tus archivos y qué hay dentro.

39

Si desea pasar los datos a través de POST en lugar de GET, puede hacerlo utilizando una combinación de PHP y JavaScript, así:

function formSubmit(house_number) 
{ 
    document.forms[0].house_number.value = house_number; 
    document.forms[0].submit(); 
} 

Luego, en PHP se recorre la casa, números, y crear enlaces a la función de JavaScript, como esto:

<form action="house.php" method="POST"> 
<input type="hidden" name="house_number" value="-1"> 

<?php 
foreach ($houses as $id => name) 
{ 
    echo "<a href=\"javascript:formSubmit($id);\">$name</a>\n"; 
} 
?> 
</form> 

de esa manera sólo hay una forma cuya variable oculta (s) se modifican de acuerdo a lo que se hace clic en vincular. Entonces JavasScript envía el formulario.

8

Este es un hilo antiguo, pero por si acaso alguien se encuentra, creo que la solución más directa es usar CSS para hacer que una forma tradicional parezca un enlace de anclaje.

@ben es correcto, puedes usar php y Javascript para enviar una publicación con un enlace, pero vamos a preguntar qué hace el js - esencialmente crea un formulario con style = 'display: none' establece una línea de entrada/texto con valor = 'algo' y luego lo envía.

Sin embargo, puede omitir todo esto haciendo un formulario. setting style = 'display: none' en las líneas de entrada/texto (no el formulario en sí mismo como arriba) y luego usa CSS para hacer que el botón se vea como un enlace normal.

aquí es un ejemplo es que utilizo:

en PHP Class,

Luego, en el ID de CSS = "view_form" set "display: inline;" y en el CSS id = "view_button" establecido en algo como: "fondo: ninguno; borde: ninguno; color: #fff; cursor: puntero"

+0

buen punto, tal vez no sea el método más efectivo pero definitivamente el más fácil de usar. –

0

Deberíamos hacer que todo sea más fácil para todos porque simplemente puede combinar JS a PHP Combinar PHP y JS es bastante fácil.

$house_number = HOUSE_NUMBER; 
echo "<script type='text/javascript'>document.forms[0].house_number.value = $house_number; document.forms[0].submit();</script>"; 

o una manera un tanto más seguro

$house_number = HOUSE_NUMBER; 
echo "<script type='text/javascript'>document.forms[0].house_number.value = " . $house_number . "; document.forms[0].submit();</script>"; 
Cuestiones relacionadas