javascript - 使用 php/javascript 或 jquery 提交 form2 时阻止其他 form1 提交
问题描述
这是我正在做的第一篇文章的真实代码包含同样的问题,
如您所见,表单 1 按钮用于控制 $_SESSION['clicks'] 值的迭代,我在此表单中使用会话,
表单 2 按钮用于回显从另一个数组中检索到的对应名称的数组。
问题是每次在 php 中单击或调用 form2 中的按钮时,其他表单或 form1 也会被提交
<?php
session_start();
$results_per_page = 10;
if (!isset($_GET['page'])) {
$page = 1;
}else{
$page = $_GET['page'];
}
$stmt1 = $conn->prepare("SELECT*FROM doctors");
$stmt1->execute();
$stmt2 = $conn->prepare("SELECT*FROM doctors ORDER BY doctor_name ASC");
$stmt2->execute();
while($row = $stmt2->fetch()) {
$result[] = [
'name' => $row['doctor_name'],
'degree' => $row['doctor_degree'],
'foe' => $row['doctor_foe'],
];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div>
<form method="post">
<?php
$next = "<button class='btn-nav' name='plus'>Next</button>";
$prev = "<button class='btn-nav' name='min'>Prev</button>";
$next_un = "<button class='btn-nav' name='plus' disabled>Next</button>";
$prev_un = "<button class='btn-nav' name='min' disabled>Prev</button>";
$results = count($result);
$num_of_pages = ceil($results/$results_per_page);
$clicks = 0;
if (isset($_POST['plus'])) {
$_SESSION['clicks'] += 10 ;
}else {
$_SESSION['clicks'] -= 10;
}
if ($_SESSION['clicks']>0) {
echo $prev;
}else{
echo $prev_un;
}
if ($_SESSION['clicks']>=($results-10)) {
echo $next_un;
}else{
echo $next;
}
$newarr = array_slice($result, $_SESSION['clicks'], 10);
?>
</form>
</div>
<div>
<table class="appt">
<?php
foreach ($newarr as $row) {
echo "<tr><td>".$row['name']
."</td><td>".$row['degree']
."</td><td>".$row['foe']."</td></tr>";
}
echo $new_count = count($newarr);
?>
</table>
<table class="appt">
<form method="post">
<tr><th>Set Appointment</th></tr>
<?php
switch ($new_count) {
case '10':
echo '<tr><td><button type="button" name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa3">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa4">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa5">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa6">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa7">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa8">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa9">Set Appointment</button></td></tr>';
echo '<tr><td><button type="button" name="sa10">Set Appointment</button></td></tr>';
break;
case '9':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa7">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa8">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa9">Set Appointment</button></td></tr>';
break;
case '8':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa7">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa8">Set Appointment</button></td></tr>';
break;
case '7':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa7">Set Appointment</button></td></tr>';
break;
case '6':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
break;
case '5':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
break;
case '4':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
break;
case '3':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
break;
case '2':
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
break;
default:
echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
break;
}
?>
</form>
</table>
</div>
<?php
$sa1 = $_POST['sa1'] ?? '';
$sa2 = $_POST['sa2'] ?? '';
$sa3 = $_POST['sa3'] ?? '';
$sa4 = $_POST['sa4'] ?? '';
$sa5 = $_POST['sa5'] ?? '';
$sa6 = $_POST['sa6'] ?? '';
$sa7 = $_POST['sa7'] ?? '';
$sa8 = $_POST['sa8'] ?? '';
$sa9 = $_POST['sa9'] ?? '';
$sa10 = $_POST['sa10'] ?? '';
if (isset($_POST['sa1'])) {
echo $newarr[0]['name'];
echo $newarr[0]['degree'];
echo $newarr[0]['foe'];
}else if (isset($_POST['sa2'])) {
echo $newarr[1]['name'];
echo $newarr[1]['degree'];
echo $newarr[1]['foe'];
}else if (isset($_POST['sa3'])) {
echo $newarr[2]['name'];
echo $newarr[2]['degree'];
echo $newarr[2]['foe'];
}else if (isset($_POST['sa4'])) {
echo $newarr[3]['name'];
echo $newarr[3]['degree'];
echo $newarr[3]['foe'];
}else if (isset($_POST['sa5'])) {
echo $newarr[4]['name'];
echo $newarr[4]['degree'];
echo $newarr[4]['foe'];
}else if (isset($_POST['sa6'])) {
echo $newarr[5]['name'];
echo $newarr[5]['degree'];
echo $newarr[5]['foe'];
}else if (isset($_POST['sa7'])) {
echo $newarr[6]['name'];
echo $newarr[6]['degree'];
echo $newarr[6]['foe'];
}else if (isset($_POST['sa8'])) {
echo $newarr[7]['name'];
echo $newarr[7]['degree'];
echo $newarr[7]['foe'];
}else if (isset($_POST['sa9'])) {
echo $newarr[8]['name'];
echo $newarr[8]['degree'];
echo $newarr[8]['foe'];
}elseif (isset($_POST['sa10'])) {
echo $newarr[9]['name'];
echo $newarr[9]['degree'];
echo $newarr[9]['foe'];
}
//session_destroy();
?>
</body>
</html>
解决方案
嗨,我想我明白你想说什么。
只需使用以下内容包装表单中的逻辑:
<?php
if(isset($_POST['btn1'])) {
//Code for form 1
}
if(isset($_POST['btn2'])) {
//Code for form 2
}
推荐阅读
- javascript - 在响应函数中调用 await
- amazon-web-services - 通过预签名 URL 403 错误将文件上传到 s3
- google-apps-script - Google Scripts - 一个接一个地运行一个函数
- java - Jersey 使用 application/json 和 application/x-www-form-urlencoded
- java - Android:通过发布请求上传图像文件和表单数据总是失败
- xml - C# - xml 到 winforms 中的列表视图
- postgresql - 队列深度和读/写 IOPS 突然增加
- django - 在 Django admin 中使用内联模型时如何保存更新程序和创建者
- c# - 将 WPF 画布保存到文件而不损失质量(不使用位图作为中介)
- javascript - 两个空数组不相等