0

phpコード

if(isset($_POST['txtLocation']))
{
    $choice_loc = $_POST["txtLocation"];
}
elseif(!isset($_POST['txtLocation']))
{
    $message = "Please select the desired location or click on default";
}
elseif($choice_loc == "txtSetXY")
{
    $x = $_POST["txtXLocation"];
    $y = $_POST["txtYLocation"];
    if($x == "")
    {
        $message = "You forget to enter X location.";
    }
    elseif($y == "")
    {
        $message = "You forget to enter Y location.";
    }
    else
    {
        $choice_loc = $x . "," . $y;
    }
}

これはhtml形式です

<div class="formText">
  <input type="radio" name="txtLocation" value="txtSetXY"/> Specify Location<br />
  <div style="padding-left:20px;">
       X: <input type="text" id="locField" name="txtXLocation">
       Y: <input type="text" id="locField" name="txtYLocation">
   </div>
   <input type="radio" name="txtLocation" value="Default" checked="checked"/>Default
</div>

ロジックのエラーは何ですか??

値「デフォルト」はデータベースに入力されますが、value="txtSetXY"ラジオを選択してテキストフィールドに x と y の値を入力すると、データベースに入力されませんか?

これは私のデータベース入力クエリです

$insert = "INSERT INTO dbform (dblocation) VALUES ('{$choice_loc}')";
4

2 に答える 2

2

テストが 3 番目の選択肢に入る方法はありません。

elseif($choice_loc == "txtSetXY")

なぜなら

if(isset($_POST['txtLocation']))
{
...
}
elseif(!isset($_POST['txtLocation']))
{
...
}

すべての可能なパスをカバーし、次のように置き換えることができます

if(isset($_POST['txtLocation']))
{
...
}
else
{
...
}

別のテスト ケースを追加できないことがわかりました。

テストで順序を逆にしてみる必要があるかもしれません:

if(isset($_POST['txtLocation']))
{
    $choice_loc = $_POST["txtLocation"];
}
elseif($choice_loc == "txtSetXY")
{
    $x = $_POST["txtXLocation"];
    $y = $_POST["txtYLocation"];
    if($x == "")
    {
        $message = "You forget to enter X location.";
    }
    elseif($y == "")
    {
        $message = "You forget to enter Y location.";
    }
    else
    {
        $choice_loc = $x . "," . $y;
    }
}
else
{
    $message = "Please select the desired location or click on default";
}
于 2013-01-31T17:12:46.247 に答える
0

elseif最初のロジック セクションで 's'を少し使いすぎました。次のことを試してください。

if(!empty($_POST['txtLocation']))
{
    $choice_loc = $_POST["txtLocation"];
}
else
{
    $message = "Please select the desired location or click on default";
}
if(isset($choice_loc) && $choice_loc == "txtSetXY")
{
    if(!empty($_POST["txtYLocation"]))
        $y = $_POST["txtYLocation"];
    else
        $message = "You forget to enter Y location.";

    if(!empty($_POST["txtXLocation"]))
        $x = $_POST["txtXLocation"];
    else
        $message = "You forget to enter X location.";

    if(isset($x) && isset($y))
    {
        $choice_loc = $x . "," . $y;
    }
}
于 2013-01-31T17:15:13.867 に答える