このif文が正しいメッセージを生成しない理由を確認しようとしています。起こるはずのことは、ユーザーがdbに「In」とマークされていない行を選択すると、最初のメッセージが表示されるということです。彼らがアドレスまたはサービスレベルを選択することを忘れた場合、else ifがトリガされるはずです。すべてのケースが正しい場合は、elseステートメントを実行します。しかし、起きていることは、最初に選択されたときに最初のメッセージがトリガされ、エラーが発生するということです。ユーザーがアドレスまたはサービスを選択することを忘れた場合、そのエラーが発生します。ユーザーがelse文を実行するのではなく、すべての条件を満たすと、条件がtrueであっても$ boxstatusエラーが表示されます。誰かが私のエラーを指摘してくれますか?多くのおかげで文が不正確な結果を生成する場合
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-type: application/json");
$json = "";
if ($boxstatus!="In") {
$json .= "{\"Error\": \"ERROR: The box must be in the archive to enable a retrieval.\"}";
}
else if ($service == '' || $address == '') {
$json .= "{\"Error\": \"ERROR: You must select a retrieval address and a service level.\"}";
}
else {
$json .= "{\n";
$json .= "\"address\": \"".$address."\",\n";
$json .= "\"service\": \"".$service."\",\n";
$json .= "\"box\": \"".$box."\"\n";
//$json .= "box: [\"". implode('","', $box) ."\"]\n";
$json .= "}\n";
}
echo $json;
アヤックス、それは場合に役立ちます:
は$.ajax({
type: "POST",
dataType: "json",
url: "boxretrieve.php",
data: "items="+itemlist+columns,
success: function(data){
if (data.Error) jAlert(data.Error);
else {
jAlert("You have successfully retrieved\n\rBox: "+custref+"\n\r"+
"Address: "+address+"\n\r"+
"Service: "+service+"\n\r"+
"Destroydate: "+destroydate);
$("#flex1").flexReload();
}
}
});
+++++ UPDATE +++++++
誤差2に2つ目のエラーを変更とAjaxで条件を行なったし、すべてがうまくなりました。誰もが助けてくれてありがとう。
これは私には正しいようです。 '$ boxstatus'の値を追跡しようとしましたか? – slaphappy
文字通り '$ boxstatus'に' In'値を割り当てることができますか? 「あなたが別の行動を起こさない限り、条件には何も問題はないと思います。 – dpp
@kbokこれをもう一度見て、おそらく何が起きているのでしょうか?2番目のエラーをErrorからError2に変更する必要があるため、data.Errorが表示されていますか? – bollo