php、jQuery、Lightbox、Ajax GET 和 POST 问题

发布于 2024-11-06 14:36:59 字数 1612 浏览 2 评论 0原文

我在灯箱(fancybox)中有一个表格。 我正在尝试执行 ajax get 来运行数据库更新。 但我不知道为什么它不起作用。 下面的代码是灯箱中的内容:

<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'] 为空。这怎么可能?我做错了什么?

I have a form in a lightbox (fancybox).
I am trying to do an ajax get to run an update to the database.
But I do not know why it does not work.
The code below is what is in the lightbox:

<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>

This is what I have in the called file:

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');<?

}
?>

Everything seems fine when I click the confirm button. No errors. But when I look in the database it saves an empty string. $_GET['timezones'] is empty. How is that possible? What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在风中等你 2024-11-13 14:36:59

它是一个 emtry 字符串,因为您发送的是一个空字符串。看看您发布的这一行:

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

您可能忘记在其中提供您想要的时区,如下所示:

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

THE_TIMEZONE 替换为您想要设置的时区...

It's an emtry string, because you are sending an empty string. Look at this line you posted:

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

You probably forgot to give the timezone you wanted into there like this:

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

Replace THE_TIMEZONE with the timezone you want to set...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文