Publicación + formulario + acción + resultados en la misma página

10 ago 2017, 13:11:44
Vistas: 59.9K
Votos: 1

Estoy tratando de poner en una publicación un formulario personalizado y, en la misma página, me gustaría visualizar los resultados de una acción en el formulario.

Pero me faltan los conceptos básicos.

Esencialmente me gustaría hacer algo como esto. ¿Es posible?

<?php
    if(isset($_REQUEST['submit_btn']))
    {
       echo "<div>";
       $name = $_POST["names"];
       echo "</div>";
    }
?>

<form action="" method="POST">
   <input type="text" name="names" id="names">
   <input type="submit" value="submit" name="submit_btn">
</form>

AÑADIDO (después de la respuesta de Tejas gajjar):

Gracias por la respuesta. En realidad no necesito interactuar con la base de datos, así que eliminé algunas de las líneas sugeridas.

Si uso esto:

ejemplo de código PHP en WordPress

Pregunta: ¿Sabes por qué se renderiza así?:

resultado del código PHP en WordPress

AÑADIDO (después del comentario de Milo):

OK funcionó. Incluso pude acceder al campo del formulario.

<form action="" method="POST">
   <input type="text" name="names" id="names">
   <input type="submit" value="submit" name="submit_btn">
</form>

[insert_php]
    if(isset($_REQUEST['submit_btn']))
    {
       echo "<div>";
       $name = $_POST["names"];
       echo "</br>";
       echo "RESPUESTA:</br></br>", $name;
       echo "</div>";
    }
[/insert_php]
3
Comentarios

No puedes poner PHP en el contenido de una publicación. Considera crear un shortcode o una plantilla personalizada.

Milo Milo
10 ago 2017 16:10:11

Ok, usé el plugin https://it.wordpress.org/plugins/insert-php/ y ahora parece estar funcionando, PERO no pude acceder al campo del formulario (nombres). "En su sitio web leí: El código entre las etiquetas debe ser completo en sí mismo. Las referencias a variables o bloques de código fuera del área entre las etiquetas fallarán. Consulta la URL de 'más información' para una explicación de esto". No puedo acceder al campo de nombres del formulario. ¿Alguna sugerencia?

Mario Stefanutti Mario Stefanutti
10 ago 2017 16:49:23

Hola Milo. Funcionó bien. Inserté un AGREGADO a la pregunta original. Gracias.

Mario Stefanutti Mario Stefanutti
10 ago 2017 17:06:03
Todas las respuestas a la pregunta 1
5

Usa este código

<?php
    if(isset($_REQUEST['submit_btn']))
    {
       echo "<div>";
       $name = $_POST["names"];
       echo "</div>";
       $ins="insert into tablename (fieldname)values('$name') ";                
       $conn->query($ins);
       ?>
       <script>
       alert('insertado correctamente');
       </script>
       <?php
          $sel="select * from tablename";
          $r=$conn->query($sel);
          while($u=$r->fetch_object())
          {
      echo $u->fieldname;
          }
    }
?>

<form action="" method="POST">
   <input type="text" name="names" id="names">
   <input type="submit" value="enviar" name="submit_btn">
</form>

Espero que esto te ayude

10 ago 2017 13:26:08
Comentarios

Todavía tengo problemas para que el post funcione. Ver notas adicionales.

Mario Stefanutti Mario Stefanutti
10 ago 2017 15:02:18

¿Estás sugiriendo insertar variables $_POST directamente en una consulta SQL sin sanitizar? Mala idea

Robert Dundon Robert Dundon
10 ago 2017 17:55:27

Lee la pregunta correctamente @RobertDundon.

User User
11 ago 2017 08:10:23

¿Qué problema estás enfrentando @MarioStefanutti?

User User
11 ago 2017 08:12:34

Ya resuelto: El problema que tenía era preparar una publicación en WP con un formulario, luego usar PHP para llamar a un servicio JSON externo y después presentar los datos en la misma página. No necesitaba una base de datos. Usé el plugin "insert-php" para incrustar PHP en la página. Respecto a los formularios, pueden hacerse directamente con HTML o usando Ninja Forms u otros.

Mario Stefanutti Mario Stefanutti
11 ago 2017 16:16:42