我有下面的代码(其中我只能使用HTML和PHP),它的目标是根据在表单上执行的操作更改每个单元格的字母,并显示在同一页面上;问题是它没有实现其目标,它尝试了几种方法,但都没有奏效;有人能帮我吗?
代码1: index.php
<body>
<center>
<?php
require('action.php');
tables();
actions();
echo '<form>';
echo '<label>Row: <input name="row" method="post"></label><br/>';
echo '<label>Place: <input name="place" method="post"></label><br/>';
echo '<br/>Operation: <select name="select">';
echo '<option>reserve</option>';
echo '<option>buy</option>';
echo '</select>';
echo '<button type="submit" name="btn" formmethod="post">send</button>';
echo '</form>';
?>
</center>
</body>
代码2: tables.php
<?php
function tables(){
$seating = array(
array('', 1, 2, 3, 4, 5),
array(1, 'L', 'L', 'L', 'L', 'L'),
array(2, 'L', 'L', 'L', 'L', 'L'),
array(3, 'L', 'L', 'L', 'L', 'L'),
array(4, 'L', 'L', 'L', 'L', 'L'),
array(5, 'L', 'L', 'L', 'L', 'L')
);
echo '<table style="border: 1px solid black;">';
for ($i=0; $i < 6; $i++) {
echo '<tr>';
for ($j=0; $j < 6; $j++) {
echo '<td>'.$seating[$i][$j].'</td>';
}}
echo '</tr>';
echo '</table>';
}
?>
代码3: action.php
<?php
require('tablas.php');
function actions(){
if(isset($_POST["btn"])){
if ($_POST["select"]=="reserve") {
$asientos[$_POST["row"]][$_POST["place"]]="R";
}elseif ($_POST["select"]=="buy") {
$asientos[$_POST["row"]][$_POST["place"]]="L";
}
}
}
?>
发布于 2019-05-21 05:02:46
您有一个没有method
的表单,所以它缺省为GET,但您使用的是POST。您在按钮中有某种方法,但这是不正确的:
<!-- This: -->
<button type="submit" name="btn" formmethod="post">send</button>
<!- Should be: -->
<form method="post">
<button type="submit" name="btn">send</button>
</form>
下面是更多的代码审查,我将对其进行几次编辑,因为您的代码有改进的空间:
<center>
。这是过时的,尝试<div style="text-align: center">
?>你的其他输入在这里<?php
函数表(){ $resulthtml = '';$resulthtml.= '';for ($i=0;$i < 6;$i++) { $resulthtml.= ''.$i.'';} return $resulthtml;} echo tables();
我将把它留在这里,因为这不是一个审查网站,但上面提到的建议应该有助于使您的代码更干净,更容易理解,并通过扩展更容易调试。
发布于 2019-05-21 04:55:15
我在action.php中看到的一个拼写错误是:
require('tablas.php');
应该是: require('tables.php');
https://stackoverflow.com/questions/56227027
复制相似问题