ラジオ・グループを選択すると、自分のPHPファイルにajaxで送信されたものから選択できます(各グループから選択されたオプションのみが渡されます)。私は$ _POST()が正常にように)それらの変数を、それらの値をつかむPHP変数としますprint_r(でそれらを保存することができます:IF文のPHP変数に格納された文字列としてajaxオブジェクト値を使用
ますprint_r()の結果の例:
Array ([0] => Customer) Array ([0] => Completed Workorders) Array ([0] => All Workorders)
(ブラウザのページで)私も午前他の2つの変数(配列として格納された他のチェックボックスの値から)をMySQL WHERE句に使用することができます。
今、php変数= "[ラジオグループの2つの値のオプションのうちの1つ]"と次に$ whereclause = "何らかの種類の値"と言う一連のIF文を作成しようとしています。
MY HTMLのCODE:
// 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">
マイ$ _POST()CODE:
//Get Table Type.
if (isset($_POST['revenueTblType'])) {
$revenueTblType = $_POST['revenueTblType'];
print_r($revenueTblType);
};
//Get Report Type
if (isset($_POST['revenueWO'])) {
$revenueWO = $_POST['revenueWO'];
print_r($revenueWO);
};
//Get date include value.
if (isset($_POST['revenueWODate'])) {
$revenueWODate = $_POST['revenueWODate'];
print_r($revenueWODate);
};
//Get date range.
$revenuefromajax=$_POST['revenuefrom'];
$revenuetoajax=$_POST['revenueto'];
$revenuefromstring = strtotime($revenuefromajax);
$revenuetostring = strtotime($revenuetoajax);
$revenuefrom=date("Y-m-d", $revenuefromstring);
$revenueto=date("Y-m-d", $revenuetostring);
//Get selected Status Values.
if (isset($_POST['revenue_checkboxes'])) {
$revenue_check = $_POST['revenue_checkboxes'];
};
マイ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'";
}
私はこのコードを実行すると、結果は選択されたボタンの値が正常に処理されても、常に「else」という結果になります。
IF文で送信された値を使用できるように、私はajaxの結果に何かする必要がありますか?
すべての援助を歓迎します。
ありがとうございます!
特定のチェックボックスが設定されている場合は、 '$ revenuwWO'だけを設定します。定義されていない変数は常に 'null'値を持つとみなされ、' null == 'anything''はfalseであるため、すべての 'if()'テストが失敗します。有効な唯一の実行パスは、その最後の 'else'節です。 –
ユーザが選択できるラジオボタンは3つのラジオグループで構成されているので、各グループのオプションは常に選択され、ajaxからphpに送られます。私はprint_r()それらの値を私のPHPページからブラウザに渡して、値を正常に見ることができます。 ifステートメントは、一方のラジオが他方のラジオよりも選択されている場合に結果を選択することになっています。私はphp変数に格納されている値を印刷できる理由はよく分かりませんが、if文は同じ変数の値を見ることができません。 – rdimouro