Javascript: при нажатии кнопки ОТМЕНА все еще сохраняются данные

0

Это моя проблема почти неделю, и я не могу ее разрешить.

Сценарий:

Прежде чем сохранить данные, появится сообщение с подтверждением, что... Station is full. do you want to continue saving? Station is full. do you want to continue saving?... тогда, когда я попытался ОТМЕНА, он все еще сохраняет данные.

Нажав кнопку CANCEL, она больше не будет экономить.

Предполагая, что у меня есть Название здания: Звезда 1 и Звезда 2...

"Звезда 1", а "Звезда 2" - значение $ bldg. Тогда общая продолжительность для STAR 1 составляет 08:00:00 [это уже заполнено], затем для STAR 2 00:00:00 [еще не существует в базе данных]

Вот мой код:

if (isset($_GET['js_varOK'])) 
$cancel = $_GET['js_varOK'];
else $cancel = "not";

    if($cancel != "yes")
    {
        for($i=0; $i<sizeof($bldg);$i++)
        {
        if($cancel != "yes")
        {   
        $result = mysql_query("SELECT * FROM tbldata WHERE  fldNetname = '".$network."' AND fldBldgName = '".$bldg[$i]."'  AND  fldWeek = '".$week."' AND fldMonth = '".$month."'  AND fldYear ='".$year."' ORDER BY id desc");
        if(mysql_num_rows($result)==0)
        {
        $totalduration = "";
        $seconds = 0;
        $minutes = 0;

        $computeSecMin = $seconds * $minutes; 
        $subSecMin = $computeSecMin + $duration; 
        $getMin = floor($subSecMin/60); 
        $getSec = $subSecMin%60; 
        $totalduration = $getMin .":". $getSec; 
        $query2 = "INSERT INTO tbldata(fldNetname,fldBldgName,fldPlaylist,fldMonth,fldWeek,fldYear,fldDuration,fldFrom,fldTo,fldTotalDuration,fldTimestamp,fldStatus, fldUser) VALUES ('".$network."','".$bldg[$i]."','".$AdName."','".$month."','".$week."','".$year."','".$duration."','".$from."','".$to."', '".$totalduration."','".$date."','".$status."',(SELECT fldid from tblmembers where fldUsername= '".$_SESSION['user']."'))";
        mysql_query($query2) or die (mysql_error());    

        echo "<script type='text/javascript'>\n";
        echo "alert('Data have been saved first!');\n";
        echo "</script>";       
        }
        else
        {
        while ($row = mysql_fetch_array($result))
        {
        if($network == "Mass and Mobile" && $row[fldTotalDuration]  == "08:00:00"  && $duration >= "0 s")
        {?><?php
        if(sizeof($bldg) == 1)
        {
        echo "<script type='text/javascript'>\n";
        echo "alert('$bldg[$i] station is already full.');\n";
        echo "window.location='booking_content.php'";
        echo "</script>";
        }
        else
        { ?>
        <script>
        var myVar = "station is already full. Do you want to save the other networks?";
        var js_varOK;
        var bldg;
        var network;
        if (confirm(myVar)) 
        {
        js_varOK = "no";
        bldg = "<?php echo $bldg?>";
        network= "<?php echo $network?>";
        window.location = "?js_varOK=" + js_varOK + "&bldg="+bldg + "&network="+network;
        } else 
        {
        js_varOK = "yes";
        window.location = "?js_varOK=" + js_varOK;

        }
        </script>
        <?php
        }

        }
        }

    }
    else
    {
       //do noothing
    }

Поэтому, когда я нахожусь в ОТМЕНЕ, он просто перейдет к else of do nothing... НО его все еще сохраняется..

Основываясь на моем понимании... STAR 1 будет первым, кто прочитает программу для цикла for, и после этого он перейдет к "if($network == "Mass and Mobile" && $row[fldTotalDuration] == "08:00:00" && $duration >= "0 s")" затем появится всплывающее сообщение, после чего я нажму кнопку отмены, тогда значение $cancel будет уже "да", тогда STAR 2 уже сохранен в моя база данных, которая должна быть остановлена программой, чтобы сохранить ее при отмене клика....

благодаря..

  • 0
    Откуда берется значение $ cancel? В первой строке вы проверяете, является ли это «да», но вы не показываете, как / где это устанавливается.
  • 0
    @ echosa..Извините, я забыл включить это ... я редактирую свой пост ...
Показать ещё 2 комментария
Теги:

1 ответ

0
Лучший ответ

Ваша переменная $_GET['js_varOK'] установлена в обоих случаях. Он просто пуст, если вы не хотите сохранять.

Попробуйте доказать следующее:

if (isset($_GET['js_varOK']) && $_GET['js_varOK'] != '') { // better way: .. && $_GET['js_varOK'] == 'yes'
    echo 'save';
} else {
    echo 'dont save';
}

Я рекомендую немного очистить свой код. использование

if ($a == $b) {
    echo 'yes';
} else {
    echo 'no';
}

вместо

if ($a == $b) echo 'yes';
else echo 'no'; 

Это всего лишь немного больше кода, но не тот, который подвержен ошибкам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню