Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax对象值作为存储在IF语句php变量中的字符串_Php_Ajax_If Statement - Fatal编程技术网

使用ajax对象值作为存储在IF语句php变量中的字符串

使用ajax对象值作为存储在IF语句php变量中的字符串,php,ajax,if-statement,Php,Ajax,If Statement,我有一个无线组选择,用户可以从中选择通过ajax发送到我的php文件的选项(只有每个组中选择的选项才能传递它们的值)。我可以$\u POST()获取这些值,将它们保存在php变量中,并成功地打印这些变量,如下所示: 打印()结果示例:(在浏览器页面中) 我还能够在MySQL WHERE子句中成功地使用其他两个变量(来自存储为数组的其他复选框值) 现在,我正在尝试构建一系列IF语句,这些语句表示如果php变量=“[radio group的两个值选项之一]”然后$whereclause=“某种值”

我有一个无线组选择,用户可以从中选择通过ajax发送到我的php文件的选项(只有每个组中选择的选项才能传递它们的值)。我可以$\u POST()获取这些值,将它们保存在php变量中,并成功地打印这些变量,如下所示:

打印()结果示例:(在浏览器页面中)

我还能够在MySQL WHERE子句中成功地使用其他两个变量(来自存储为数组的其他复选框值)

现在,我正在尝试构建一系列IF语句,这些语句表示如果php变量=“[radio group的两个值选项之一]”然后$whereclause=“某种值”

我的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">
我的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'";
}
*/