0

我对 PHP 比较陌生。对于我的网页,我需要在同一页面中加载多个页面。因为我有一个名为 cwt.html 的基本 HTML 页面,其中包含所有复选框和提交按钮。单击提交按钮后,与所选复选框(cwt.html)关联的下一页(例如 processing.php)也应加载到同一页面中。

<html>
<head>
<title> Conditions We Treat </title>
</head>
<body>
<form id = form1 action = "processing1.php" method = "post">
<input type = "checkbox" name = "sickness[]" value = "Nausea">Nausea</input><br/>
<input type = "checkbox" name = "sickness[]" value = "Constipation">Constipation</input><br/>
<input type = "checkbox" name = "sickness[]" value = "vomiting">Vomiting</input><br/>
<div id = "submit1"><input type = "submit" name = "submit" value = "submit"></input></div><br/>
</form>
</body>
</html>

在此网页中单击提交按钮后,控件应转到 processing1.php,但必须在同一页面中加载内容

<html>
<head>
<title> Conditions We Treat </title>
</head>
<body>
<?php
echo "hi"
foreach($_POST['sickness'] as $s)
{
    $con = mysqli_connect("localhost","root","","collofnursing");
    //mysql_select_db("collofnursing");
    $res = mysqli_query($con,"select * from condwetreat");
    while($row = mysqli_fetch_array($res))
    {
        echo $s;?> <br><br><?php
        }
}
?>
</body>
</html>
4

3 回答 3

1

您可以使用 jquery,通过 onclick 事件将您的提交方法更改为函数:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function onSubmitForm(){
    $.get('page1.php').success(function(html) {
        $('#page1').html(html);
    });
    $.get('page2.php').success(function(html) {
        $('#page2').html(html);
    });
}
</script>

<div id="page1"></div>
<div id="page2"></div>
于 2013-03-03T07:08:21.363 回答
0

正如其他人所说,使用 jQuery 将 HTML 片段加载到div. 由于您已经有一个完整的 HTML 文档,因此您加载的文本不应该是一个完整的 HTML 文档 - 如果您将它加载div到开始时您需要的 HTML。

我想知道我是否可以提供一些建议 - 与问题无关!- 您可能会觉得这很有用。随着您的应用程序变得越来越复杂,您会发现将逻辑和演示代码分开会更加整洁——即使一开始,您只需将前者放在 PHP 文档的开头,而将后者放在末尾。随着您对 PHP 的了解越来越多,您会发现将它们作为单独的文件并在 using 中加载“模板”是个好主意require_once

如果你这样做,你会发现你编写 PHP 的方式在逻辑和模板之间是不同的。对于模板,它有助于将每个 PHP 语句保存在单个 PHP 块中,因此文档基本上保持为 HTML。这更简洁,有助于利用 IDE 中的语法着色和标签验证。因此,我会这样写你的模板:

<?php
// Move this 'logic' code out of the way of your view layer
// Here, the brace form of loops is preferred
// Ideally it'd get moved to a different file entirely
$con = mysqli_connect("localhost","root","","collofnursing");
mysql_select_db("collofnursing");
$res = mysqli_query($con,"select * from condwetreat");

?><html>
<head>
    <title> Conditions We Treat </title>
</head>
<body>
    <!-- The PHP 'tags' are now easier to indent -->
    <!-- So use while/endwhile, foreach/endforeach etc -->
    Hi
    <?php while($row = mysqli_fetch_array($res)): ?>
        <!-- So it's HTML to style stuff, rather than putting
             HTML tags into PHP echo statements :) -->
        <p class="symptom">
            <?php echo $row['symptom'] ?>
        </p>
    <?php endwhile ?>
</body>
</html>
于 2013-03-03T07:20:54.943 回答
0

我推荐使用使用 AJAX 加载页面的 jQuery .load() 函数。

链接在这里!

于 2013-03-03T07:00:57.793 回答