php, jQuery, лайтбокс, Ajax GET и POST проблема - PullRequest
0 голосов
/ 13 мая 2011

У меня есть форма в лайтбоксе (fancybox). Я пытаюсь сделать AJAX получить запустить обновление базы данных. Но я не знаю, почему это не работает. Код ниже находится в лайтбоксе:

<div id="timezonelightbox">

<div class="lightboxtitle">Select Time Zone</div>

<form method="get" action="" >

<select name="timezones" id="timezones" class="selecttimezones">

<option value="Africa/Abidjan   ">Africa/Abidjan    </option>

<option value="Africa/Accra     ">Africa/Accra  </option>

<option value="Africa/Addis_Ababa   ">Africa/Addis_Ababa    </option>

<option value="Africa/Algiers   ">Africa/Algiers    </option>

<option value="Africa/Asmara">Africa/Asmara</option>

</select>

<input type="button" id="confirmtimezone" class="confirmtimezone" value="Confirm now" 
onclick="updateTimeZone(); $.fancybox.close();">
</form>

</div>

<script type="text/javascript"> 

        function updateTimeZone(){

                $.getScript('<?echo $site["url"];?>/updateTimeZone.php?timezones=<?echo $_GET["timezones"]?>');

}

        </script>

Вот что у меня в вызываемом файле:

header("content-type:text/js");

if(isset($_GET['timezones'])){

$queryupdatetimezone="UPDATE `Profiles` SET `TimeZone` ='".$_GET['timezones']."' WHERE 
ID=".(int)$_COOKIE['memberID'];

$resultupdatetimezone=mysql_query($queryupdatetimezone) or die("Errore update default timezones: ".mysql_error());

    exit;

}else{

?>alert ('An error occured');<?

}
?>

Все выглядит нормально, когда я нажимаю кнопку подтверждения. Нет ошибок Но когда я смотрю в базу данных, она сохраняет пустую строку. $ _GET ['timezones'] пусто. Как это возможно? Что я делаю не так?

1 Ответ

0 голосов
/ 13 мая 2011

Это строка emtry, потому что вы отправляете пустую строку.Посмотрите на эту строку, которую вы разместили:

$.getScript('/updateTimeZone.php?timezones=');

Возможно, вы забыли указать там часовой пояс, который вы хотели добавить, например:

$.getScript('/updateTimeZone.php?timezones=THE_TIMEZONE');

Замените THE_TIMEZONE на часовой пояс, который вы хотите установить...

...