使用ajax对象值作为存储在IF语句php变量中的字符串
我有一个无线组选择,用户可以从中选择通过ajax发送到我的php文件的选项(只有每个组中选择的选项才能传递它们的值)。我可以$\u POST()获取这些值,将它们保存在php变量中,并成功地打印这些变量,如下所示: 打印()结果示例:(在浏览器页面中) 我还能够在MySQL WHERE子句中成功地使用其他两个变量(来自存储为数组的其他复选框值) 现在,我正在尝试构建一系列IF语句,这些语句表示如果php变量=“[radio group的两个值选项之一]”然后$whereclause=“某种值” 我的HTML代码:使用ajax对象值作为存储在IF语句php变量中的字符串,php,ajax,if-statement,Php,Ajax,If Statement,我有一个无线组选择,用户可以从中选择通过ajax发送到我的php文件的选项(只有每个组中选择的选项才能传递它们的值)。我可以$\u POST()获取这些值,将它们保存在php变量中,并成功地打印这些变量,如下所示: 打印()结果示例:(在浏览器页面中) 我还能够在MySQL WHERE子句中成功地使用其他两个变量(来自存储为数组的其他复选框值) 现在,我正在尝试构建一系列IF语句,这些语句表示如果php变量=“[radio group的两个值选项之一]”然后$whereclause=“某种值”
// first radio group: user must select one or the other.
<label for="revenueCustomer">Customer</label>
<input type="radio" name="revenueTblType[]" id="revenueCustomer" value="Customer">
<label for="revenueCategory">Revenue Category</label>
<input type="radio" name="revenueTblType[]" id="revenueCategory" value="Revenue Category">
// Second radio group: user must select one or the other.
<label for="revenueCompletedWO">Completed Workorders</label>
<input type="radio" name="revenueWO[]" id="revenueCompletedWO" value="Completed Workorders">
<label for="revenueStatusWO">Workorder Status</label>
<input type="radio" name="revenueWO[]" id="revenueStatusWO" value="Workorder Status">
// Third radio group: user must select one or the other.
<label for="revenueAllWO">All Workorders</label>
<input type="radio" name="revenueWODate[]" id="revenueAllWO" value="All Workorders">
<label for="revenueDateRangeWO">Workorder Date Range</label>
<input type="radio" name="revenueWODate[]" id="revenueDateRangeWO" value="Workorder Date Range">
我的IF声明:
if ($revenueTblType == 'Customer') {
$groupbyclause = "x.company";
$columnheader = 'Customer';
$columnname = 'company';
}
else if ($revenueTblType == 'Revenue Category') {
$groupbyclause = "x.revenue";
$columnheader = 'Revenue Category';
$columnname = 'revenue';
}
else {
$groupbyclause = "x.revenue";
$columnheader = 'Revenue Category';
$columnname = 'revenue';
}
if (($revenueWO == 'Completed Workorders') and ($revenueWODate == 'All Workorders')) {
$whereclause = "x.stagestatus = 'Complete'";
}
else if (($revenueWO == 'Completed Workorders') and ($revenueWODate == 'Workorder Date Range')) {
$whereclause = "(x.stagestatus = 'Complete') AND (x.shippeddate BETWEEN '".$revenuefrom."' AND '".$revenueto."')";
}
else if ($revenueWO == 'Workorder Status') {
$whereclause = "x.stagestatus IN (". implode(',', array_map(function($item) {return '"' . $item . '"'; }, $revenue_check)) .")";
}
else {
$whereclause = "x.stagestatus = 'Complete'";
}
if ($revenueTblType == 'Customer') {
$groupbyclause = "x.company";
$columnheader = 'Customer';
$columnname = 'company';
}
else if ($revenueTblType == 'Revenue Category') {
$groupbyclause = "x.revenue";
$columnheader = 'Revenue Category';
$columnname = 'revenue';
}
/* Removed this section of code...
else {
$groupbyclause = "x.revenue";
$columnheader = 'Revenue Category';
$columnname = 'revenue';
}
*/
if (($revenueWO == 'Completed Workorders') and ($revenueWODate == 'All Workorders')) {
$whereclause = "x.stagestatus = 'Complete'";
}
else if (($revenueWO == 'Completed Workorders') and ($revenueWODate == 'Workorder Date Range')) {
$whereclause = "(x.stagestatus = 'Complete') AND (x.shippeddate BETWEEN '".$revenuefrom."' AND '".$revenueto."')";
}
else if ($revenueWO == 'Workorder Status') {
$whereclause = "x.stagestatus IN (". implode(',', array_map(function($item) {return '"' . $item . '"'; }, $revenue_check)) .")";
}
/* Removed this section of code...
else {
$whereclause = "x.stagestatus = 'Complete'";
}
*/
当我运行这段代码时,结果总是“else”结果,即使所选按钮的值成功通过
我是否必须对ajax结果做些什么,以便在IF语句中使用发送的值
欢迎一切帮助
谢谢你 在做了一些简单的编辑之后,我成功地执行了我的代码。对于那些想在类似问题上寻求帮助的人来说,以下是对我有效的方法: 以前,我的无线电选择组名称为“revenueTblType[]”、“revenueWO[]”和“revenueWODate[]”。但是,(愚蠢的我)单选组不需要像复选框那样在名称中区分数组,因为只发送一个值(因为一个组中只能选择一个单选选项。通过删除“[]”从每个名称中,我的ajax能够在不在数组中的情况下传递每个值,并且我的if语句能够成功地测试条件 另外,我必须做的另一个更改是删除每个if语句的最终“else”条件。在测试期间,我会看到基于if条件构建的第一个表。但是,一旦程序达到我不需要的else条件,我的表就会更改。删除额外代码后,会显示正确的表 我的代码: HTML:
// first radio group: user must select one or the other.
<label for="revenueCustomer">Customer</label>
<input type="radio" name="revenueTblType" id="revenueCustomer" value="Customer">
<label for="revenueCategory">Revenue Category</label>
<input type="radio" name="revenueTblType" id="revenueCategory" value="Revenue Category">
// Second radio group: user must select one or the other.
<label for="revenueCompletedWO">Completed Workorders</label>
<input type="radio" name="revenueWO" id="revenueCompletedWO" value="Completed Workorders">
<label for="revenueStatusWO">Workorder Status</label>
<input type="radio" name="revenueWO" id="revenueStatusWO" value="Workorder Status">
// Third radio group: user must select one or the other.
<label for="revenueAllWO">All Workorders</label>
<input type="radio" name="revenueWODate" id="revenueAllWO" value="All Workorders">
<label for="revenueDateRangeWO">Workorder Date Range</label>
<input type="radio" name="revenueWODate" id="revenueDateRangeWO" value="Workorder Date Range">
我希望这对其他人也有帮助
谢谢。在做了一些简单的编辑之后,我成功地执行了我的代码。对于那些希望获得类似问题帮助的人,以下内容对我很有用: 以前,我的单选组名称为“revenueTblType[]”、“revenueWO[]”和“revenueWODate[]”。但是,(愚蠢的我)单选组不需要像复选框那样在名称中区分数组,因为只发送一个值(因为一个组中只能选择一个单选选项。删除“[]”从每个名称中,我的ajax能够在不在数组中的情况下传递每个值,并且我的if语句能够成功地测试条件 另外,我必须做的另一个更改是删除每个if语句的最终“else”条件。在测试期间,我会看到基于if条件构建的第一个表。但是,一旦程序达到我不需要的else条件,我的表就会更改。删除额外代码后,会显示正确的表 我的代码: HTML:
// first radio group: user must select one or the other.
<label for="revenueCustomer">Customer</label>
<input type="radio" name="revenueTblType" id="revenueCustomer" value="Customer">
<label for="revenueCategory">Revenue Category</label>
<input type="radio" name="revenueTblType" id="revenueCategory" value="Revenue Category">
// Second radio group: user must select one or the other.
<label for="revenueCompletedWO">Completed Workorders</label>
<input type="radio" name="revenueWO" id="revenueCompletedWO" value="Completed Workorders">
<label for="revenueStatusWO">Workorder Status</label>
<input type="radio" name="revenueWO" id="revenueStatusWO" value="Workorder Status">
// Third radio group: user must select one or the other.
<label for="revenueAllWO">All Workorders</label>
<input type="radio" name="revenueWODate" id="revenueAllWO" value="All Workorders">
<label for="revenueDateRangeWO">Workorder Date Range</label>
<input type="radio" name="revenueWODate" id="revenueDateRangeWO" value="Workorder Date Range">
我希望这对其他人也有帮助
谢谢。只有在设置了特定复选框的情况下,才可以设置
$revenuwo
。这意味着所有if()
测试失败,因为未定义的变量总是假定有一个null
值,并且null==“anything”
为false。因此,唯一有效的执行路径是通过最后的else
子句。用户可以选择的单选按钮被组织在三个单选组中,因此每个组的一个选项总是s选择并通过ajax发送到php。我可以将这些值从我的php页面打印到浏览器,并成功地看到值。如果选择一个电台而不是另一个电台,if语句应该选择一个结果。我只是不确定为什么我可以打印存储在php变量中的值,但我的if语句不能“看到”同一个变量的值?只有在设置了特定复选框的情况下,才可以设置$revenuwo
。这意味着所有if()
测试失败,因为未定义的变量总是假定有一个null
值,并且null==“anything”
为false。因此,唯一有效的执行路径是通过最后的else
子句。用户可以选择的单选按钮被组织在三个单选组中,因此每个组的一个选项总是s选择并通过ajax发送到php。我可以将这些值从我的php页面打印到浏览器,并成功地看到值。如果选择一个电台而不是另一个电台,if语句应该选择一个结果。我只是不确定为什么我可以打印存储在php变量中的值,但我的if语句不能“看到”同一个变量的值?
if ($revenueTblType == 'Customer') {
$groupbyclause = "x.company";
$columnheader = 'Customer';
$columnname = 'company';
}
else if ($revenueTblType == 'Revenue Category') {
$groupbyclause = "x.revenue";
$columnheader = 'Revenue Category';
$columnname = 'revenue';
}
/* Removed this section of code...
else {
$groupbyclause = "x.revenue";
$columnheader = 'Revenue Category';
$columnname = 'revenue';
}
*/
if (($revenueWO == 'Completed Workorders') and ($revenueWODate == 'All Workorders')) {
$whereclause = "x.stagestatus = 'Complete'";
}
else if (($revenueWO == 'Completed Workorders') and ($revenueWODate == 'Workorder Date Range')) {
$whereclause = "(x.stagestatus = 'Complete') AND (x.shippeddate BETWEEN '".$revenuefrom."' AND '".$revenueto."')";
}
else if ($revenueWO == 'Workorder Status') {
$whereclause = "x.stagestatus IN (". implode(',', array_map(function($item) {return '"' . $item . '"'; }, $revenue_check)) .")";
}
/* Removed this section of code...
else {
$whereclause = "x.stagestatus = 'Complete'";
}
*/