显示数据库查询结果

时间:2013-07-15 08:22:18

标签: php jquery html sql ajax

假设我有一张表格。提交表单后,数据将提交到dataprocess.php文件。 dataprocess.php文件处理通过表单发送的变量,并回显理想的输出。

似乎不可能仅使用PHP(不使用AJAX / JavaScript)回显指定页面中的指定div。我不想使用这些,因为某些浏览器可能会禁用这些。

我担心的是我想保持包含表单元素的页面的相同格式。我希望表单元素也在那里。我希望查询结果显示在表单下方。

我可以通过一些修改来回显确切的html代码但是内存很昂贵而且我希望它是系统化的。

  1. 是否可以在同一页面内处理表单?而不是要求另一个.php文件来处理它?如何实现它?

  2. 以上仅供参考。将PHP脚本包含在同一HTML文件中将是漫长而混乱的。此外,如果我有多个表单使用相同的process.php文件,那么该方法可能效率不高。

  3. 我实际上在寻找有效的方法。 Web开发人员如何在同一页面中显示查询结果?回显所有html格式?是吗,禁用JavaScript会禁用jQuery / AJAX吗?

2 个答案:

答案 0 :(得分:1)

是的,可以在同一页面上处理表格。

<?php 

if (isset($POST)) 
{
  //write your insert query
}

?>

<html>
    <body>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <!-- Your form elements and submit button -->
        </form>
        <table>
        <?php
          //your select query in a while loop
        ?>
        </table>
    </body>
</html>

但是如果您选择此技术而不是ajax,则必须刷新每个插入操作的所有页面。

一个例子

<div id="dialog-form">
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
            <table>
                <tr>
                    <td>Job</td>
                    <td>
                        <input type="text" name="job" />
                    </td>
                </tr
            </table>
            <input type="submit" value="Insert" />
    </fieldset>
    <input type="hidden" name="doProcess" value="Yes" />
    </form>
</div>

<?php

$myQuery= $db->prepare("INSERT INTO Jobs (job) VALUES (:p1)");


if (isset($_POST['doProcess']) && $_POST['doProcess'] == 'Yes')
{
    $myQuery->bindValue(":p1", $_POST['job'], PDO::PARAM_STR);  
    $myQuery->execute();
}


?>

答案 1 :(得分:1)

如果你真的不想使用ajax(我认为你应该)。你可以这样做。

<form action="" method="POST">
   <input type="text" value="something" name="something_name"/>
    <?php
        if(isset($_POST['something_name'])){
            echo '<div id="display_something_name_if_exists">';
            echo $_POST['something_name'];
            echo '</div>';
        }
    ?>
</form>

基本上它的作用是提交给自己然后如果有提交(用isset测试),它将用正确的信息回显div。