2010-06-23 12 views
6

Envío una solicitud POST a una página PHP y, dependiendo de los contenidos, quiero que devuelva una de las dos páginas HTML independientes que he escrito.¿Cómo devolver un archivo HTML como respuesta a una solicitud POST?

+0

Por favor, muestran algo de código. ¿A dónde estás enviando una solicitud POST? De la página? En JavaScript? En PHP? ¿Usando qué función/biblioteca? –

Respuesta

13
if ($_POST['param'] == 'page1') 
    readfile('page1.html'); 
else 
    readfile('other.html'); 
+1

+1: Solución simple. –

2

puede simplemente include la página que quiera volver:

include('mypage.html'); 
+1

PHP puede incluir muchos tipos de archivos. Un archivo incluido puede ser fácilmente un documento HTML, no es necesario renombrarlo. –

+0

Buen punto, acabo de actualizar mi respuesta. –

1

basta con incluir la página correspondiente

$someVar = $_POST['somevar']; 
if ($someVar == xxxxx) 
    include "page1.htm"; 
else 
    include "page2.htm"; 
1

Hay muchas maneras de implementar directamente esto. Tendrá que examinar los datos POSTed a su script PHP y determinar cuál de los dos documentos HTML se procesará.

<?php 

    if (<your logical condition here>) { 
     include 'DocumentOne.html'; 
    } else { 
     include 'DocumentTwo.html'; 
    } 

?> 

Esto funciona, pero no es ideal cuando la contabilización de datos - cualquier recarga de la página requerirá los datos para ser publicado de nuevo. Esto puede causar efectos degradables (¿es su acción idempotente?).

Una opción más adecuada es usar una secuencia de comandos PHP para determinar el resultado a usar y luego redirigir el navegador al contenido apropiado. Una vez que el navegador del usuario ha sido redirigido, una actualización de página volverá a cargar la página limpiamente sin ningún efecto adverso inmediato.

<?php 

    if (<your logical condition here> { 
     header('Location: http://example.com/DocumentOne.html'); 
    } else { 
     header('Location: http://example.com/DocumentTwo.html'); 
    } 

?> 
2

es fácil

<?php 
if($_POST['somevalue'] == true){ 
    include 'page1.html'; 
}else{ 
    include 'page2.html'; 
} 
?> 
Cuestiones relacionadas