HTML/Ajax/PHP-如何检查是否选中/哪些复选框,并为每个复选框执行不同的操作
如上所述,我“我正在尝试创建一个简单的html/PHP页面。单击submit按钮时,我希望根据选中的复选框运行不同的SQL代码。SQL代码非常简单,它只是为每个复选框显示不同的表,但我不知道如何检查复选框是否被选中。下面是我的HTML代码HTML/Ajax/PHP-如何检查是否选中/哪些复选框,并为每个复选框执行不同的操作,php,html,sql,ajax,Php,Html,Sql,Ajax,如上所述,我“我正在尝试创建一个简单的html/PHP页面。单击submit按钮时,我希望根据选中的复选框运行不同的SQL代码。SQL代码非常简单,它只是为每个复选框显示不同的表,但我不知道如何检查复选框是否被选中。下面是我的HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Ricky Deacon, CSIS3380 Assignmen
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ricky Deacon, CSIS3380 Assignment 3. Show Table.html</title>
</head>
<body>
<h1>Book-O-Rama Catalog Search</h1>
<form action="showtab.php" method="post">
<fieldset><legend>Which Tables Would You Like To View?</legend>
<p>
Customers
<input type="checkbox" name="table" value="cust"/>
Orders
<input type="checkbox" name="table" value="ord"/>
Order Items
<input type="checkbox" name="table" value="itms"/>
Books
<input type="checkbox" name="table" value="book"/>
Book Reviews
<input type="checkbox" name="table" value="brev"/> <br /><br />
<input type="submit" name="submit" value="Show Tables">
</p>
</fieldset>
</form>
</body>
里基·迪肯,CSIS3380任务3。Show Table.html
Book-O-Rama目录搜索
您希望查看哪些表?
客户
命令
订购项目
书
书评
我还没有编写PHP响应,因为我不确定从哪里开始
谢谢Hello可以通过
showtab.php中的$\u POST['table']
获取所有选中值Hello可以通过showtab.php中的$\u POST['table']
获取所有选中值。您可以检查showtab.php中是否选中了复选框。提交表单时,输入的“值”属性将过帐到“名称”属性。如果复选框为空,则不会发布任何内容
<?php
if(isset($_POST['table']) && $_POST['table'] == 'cust') {
// Show table here
}
else {
// Do something else here.
}
?>
您的复选框需要唯一的名称。您可以检查showtab.php中是否选中了复选框。提交表单时,输入的“值”属性将过帐到“名称”属性。如果复选框为空,则不会发布任何内容
<?php
if(isset($_POST['table']) && $_POST['table'] == 'cust') {
// Show table here
}
else {
// Do something else here.
}
?>
您的复选框需要唯一的名称。以下是您需要执行的操作的更完整答案:
已编辑-还包括您的输入所需的外观
<input type="checkbox" name="table[]" value="cust"/>Orders
<input type="checkbox" name="table[]" value="ord"/>Order Items
<input type="checkbox" name="table[]" value="itms"/>Books
<input type="checkbox" name="table[]" value="book"/>Book Reviews
<input type="checkbox" name="table[]" value="brev"/>
<?php
// Check that the values you're trying to access have actually been posted
// 'table' is the 'name' of your input
if (!empty($_POST['table'])) {
// If it's not empty then set the variable
$tables = $_POST['table'];
}
// If it is empty (Your form didn't submit this input)
else {
// end processing or return to the previous page
return false;
}
// You will now need to loop through the array
foreach ($tables as $table) {
switch($table) {
case 'cust':
// Run Cust SQL Query
break;
case 'ord':
// Run ord SQL Query
break;
case 'itms':
// Run itms SQL Query
break;
case 'book':
// Run book SQL Query
break;
case 'brev':
// Run brev SQL Query
break;
}
}
?>
订单
订购项目
书
书评
以下是您需要做的更完整的回答:
已编辑-还包括您的输入所需的外观
<input type="checkbox" name="table[]" value="cust"/>Orders
<input type="checkbox" name="table[]" value="ord"/>Order Items
<input type="checkbox" name="table[]" value="itms"/>Books
<input type="checkbox" name="table[]" value="book"/>Book Reviews
<input type="checkbox" name="table[]" value="brev"/>
<?php
// Check that the values you're trying to access have actually been posted
// 'table' is the 'name' of your input
if (!empty($_POST['table'])) {
// If it's not empty then set the variable
$tables = $_POST['table'];
}
// If it is empty (Your form didn't submit this input)
else {
// end processing or return to the previous page
return false;
}
// You will now need to loop through the array
foreach ($tables as $table) {
switch($table) {
case 'cust':
// Run Cust SQL Query
break;
case 'ord':
// Run ord SQL Query
break;
case 'itms':
// Run itms SQL Query
break;
case 'book':
// Run book SQL Query
break;
case 'brev':
// Run brev SQL Query
break;
}
}
?>
订单
订购项目
书
书评
您可能不希望else语句,只希望几个if语句单独显示多个不同的表。:)检查我下面的答案,他不需要为每个复选框指定唯一的名称,他只需要将其作为数组传递,name=“table[]”
,然后在他的PHP页面中循环。您可能不希望else语句,只需要几个if语句就可以显示多个不同的表。:)检查我下面的答案,他不需要每个复选框都有唯一的名称,他只需要将其作为数组传递,name=“table[]”
,然后在他的PHP页面loop-through.giolliano-sulit中——这个响应看起来就像我需要的。如果我想包括选中多个复选框的可能性,我“我猜/else是否比switch/case更合适,但是如何从多个框中获取选中值。。。我需要分配给多个变量吗?哦,好吧,看起来我把它误读为“无线电”输入。因为所有复选框的名称都相同,所以需要将它们重命名为,name[]
,因为它们需要是一个数组。@RickD我已经更新了我的答案,这应该是您需要的,如果答案是,请接受:)我可以执行if>if>if语句而不是else if语句吗,否则,我将需要不断重复相同的代码,同时检查越来越多的复选框。我尝试过用if语句编写代码(不使用else if),但它只显示最后一个复选框的表if>if语句的问题是它可能会匹配多次。。例如,如果有人选择了cust
和order
。以下if
语句将返回true并运行:if($table=='cust'){//do something}
if($table=='cust'&&&$table=='order'){//do something}
。这不是你希望发生的行为。如果你接受这个答案,请告诉我,谢谢。乔利亚诺·苏利特——这个回答看起来正是我需要的。如果我想包括选中多个复选框的可能性,我“我猜/else是否比switch/case更合适,但是如何从多个框中获取选中值。。。我需要分配给多个变量吗?哦,好吧,看起来我把它误读为“无线电”输入。因为所有复选框的名称都相同,所以需要将它们重命名为,name[]
,因为它们需要是一个数组。@RickD我已经更新了我的答案,这应该是您需要的,如果答案是,请接受:)我可以执行if>if>if语句而不是else if语句吗,否则,我将需要不断重复相同的代码,同时检查越来越多的复选框。我尝试过用if语句编写代码(不使用else if),但它只显示最后一个复选框的表if>if语句的问题是它可能会匹配多次。。例如,如果有人选择了cust
和order
。以下if
语句将返回true并运行:if($table=='cust'){//do something}
if($table=='cust'&&&$table=='order'){//do something}
。这不是你希望发生的行为。如果你接受这个答案,请告诉我,谢谢。