gpt4 book ai didi

php - 在 php/html 中创建类似框架的结构?

转载 作者:行者123 更新时间:2023-11-28 00:20:57 25 4
gpt4 key购买 nike

我需要创建一个包含两个框架式结构的页面。在左侧,我总是想显示一个包含大约 10 个条目的小表单,在单击提交按钮后执行一些处理并显示结果。我需要随时访问左侧部分。右侧部分用于处理数据、访问数据库和显示结果。早些时候我创建了一个带框架的页面,但 chrome 有一些问题,而且 fame 被贬低的事实,我想切换到其他结构。我对 php 和 html 很满意。有人建议我使用 ajax,但我对此一无所知。

如何实现具有两个加载不同文件的部分的类似框架的结构?谢谢


我不想使用框架的原因如下:

我有一个 testframe.php 文件,可以将 testinpform.php 加载到右侧包含用于创建 3 个按钮的代码的框架。当我加载testframe.php,它显示了右侧框架中的所有按钮以及所有按钮首次按预期工作。一旦一个按钮是单击,单击后所有按钮均不起作用。当我搬到一些其他页面使用其他一些链接并返回,然后这些按钮再次开始工作。

此行为仅由 Chrome 浏览器显示。如果我不使用框架而只加载 testinpform.php,所有按钮按需工作。

在 firefox 中,无论有无框架,相同的代码都可以正常工作。

那么,这是 chrome 的问题还是我需要在我的代码中添加一些东西使其适用于所有浏览器。

我的代码如下。

测试框架.php

<?php
function generateFrames() {
echo "<FRAMESET COLS=\"360,*\">\n";
echo "<FRAME noresize NAME=\"input\" SRC=\"otherfile.php?page=left\">\n";
echo "<FRAME NAME=\"output\" SRC=\"testinpform.php?page=right\">\n";
echo "</FRAMESET>";
}

if($page=="left") {
echo "<BODY BGCOLOR=\"#FFFFFF\">";
echo "<FONT FACE=\"Arial,Verdana,Helvetica\" COLOR=\"FF0000\" SIZE=\"3\">PHP Tester</FONT>";
echo "<FORM METHOD=\"get\" ACTION=\"processForm.php?page=right\"TARGET=\"output\">\n";
echo "<TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">\n";
echo "<TR><TD><TEXTAREA NAME=\"input\" COLS=\"100\" ROWS=\"40\"
WRAP=\"virtual\">".$input."</TXTAREA></TD></TR>\n";
echo "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"submit\"
VALUE=\"Execute\"></TD></TR></TABLE></FORM>\n";
echo "</BODY>";
}

else if ($page=="right") {
echo "<BODY BGCOLOR=\"#FFFFFF\">";
if(empty($input)) {
echo "Ready to parse...";
}
else {
$input=stripSlashes($input);
eval($input);
}
echo "</BODY>";
}

else {
generateFrames();
}
?>

testinpform.php

<?php
$filenames = array("file1.txt", "file2.txt", "file3.txt");
$namesToshow = array("file1", "file2", "file3");
$numfiles = count($filenames);

for ($i = 0; $i< $numfiles; $i++)
{
echo"<form enctype=multipart/form-data method=GET
action='viewResult.php' target='_blank' >";
echo"<input type='hidden' name='filetoview' value= $filenames[$i] >";
echo"<input type='submit' value= $namesToshow[$i] >";
echo'</FORM>';
}

echo"<a href= abc.com>click here to go to next page and then come back using the back button>";
?>

谢谢


@银虎感谢您的回复。我正在查看您的代码并尝试根据我的需要对其进行自定义。

我正在为我的案例提供最简单的示例。

frame.php 包含@silvertiger 建议的代码。

在左侧部分,我想包含具有(例如)以下代码的“inputform.php”:

<form name="secondForm" method="POST" enctype="multipart/form-data" action = 'process.php' target = "output">      
<input type="hidden" name="organism" value="human" >
Enter the input in the text box:<br />
<textarea name="textArea" cols="40" rows="6" >Enter your query here</textarea> <br />
<input type="submit" value="submit" class="html-text-box">
</form>

当我调用 frame.php 并按下提交按钮时,输入表单将所有数据传递给 process.php,后者将在右半部分显示其结果。

process.php 文件是:

<?php
$organism= $_POST['organism'];
$textArea = $_POST['textArea'];
print ("\n$organism, $textArea");
?>

我需要在下面的 frame.php 文件中做哪些更改:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Some Page</title>
<script type="text/javascript" src="includes/jquery-1.5.1.min.js"></script>
<script type="text/javascript">
function loadform1() {
jQuery.ajax({ // create an AJAX call...
data: jQuery('#myform1').serialize(), // get the form data
type: 'POST', // GET or POST
url: 'process.php', // the file to call
success: function(response) { // on success..
$('#displaydata').html(response); // update the DIV
}
// might need to add a return false here so the page won't reload
});
};
</script>
</head>
<body>
<div style="float:left;width:50%;">
<form id="myform1" name="myform1" onsubmit="loadform1()">
<div style="float:left; width: 150px;">Criteria 1</div>
<div style="float:left; margni-right: 20px;">
<input type="text" name="criteria1" value="" />
</div>
<div style="clear:both; height: 30px;"></div>
<div style="float:left; width: 150px;">Criteria 2</div>
<div style="float:left; margni-right: 20px;">
<input type="text" name="criteria2" value="" />
</div>
<div style="clear:both; height: 30px;"></div>
<input type="submit" value="Show Form 1 results" />

</form>
<div style="clear:both; height: 30px;"><hr></div>
</div>

<div id="displaydata" style="float:left;width:50%; text-indent: 30px;">
<?php include('defaultpage.php'); ?>
</div>
</body>
</html>

非常感谢。

最佳答案

使用framesets :

<frameset cols="25%,*,25%">
<frame src="frame_a.htm" />
<frame src="frame_b.htm" />
<frame src="frame_c.htm" />
</frameset>

关于php - 在 php/html 中创建类似框架的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com