[英]PHP & Ajax: Passing time_zone as a parameter in AJAX
我正在尝试在Ajax请求中传递时区参数
喜欢
alert(meeting_time);
alert(meeting_timezone);
$.ajax({
type: "GET",
url: "http://webfaction/UI/user/joinmeeting.php",
data: "user_names="+ user_names + "&image=" +file+"&duration="+ duration +"&user_name="+ user_name + "&meeting_id=" + meeting_id + "&moderator_password=" + moderator_password +"&attendee_password=" + attendee_password +
"&meeting_time=" + meeting_time + "&meeting_timezone=" + meeting_timezone + "&meeting_sms_no=" + meeting_sms_no + "&meeting_logout_url=" + meeting_logout_url +"&meeting_maxp=" + meeting_maxp +"&meeting_name=" + meeting_name ,
success: function(json){
alert(json);
$('#show_ajax').hide();
if(!json.error) location.reload(true);
},
现在我的问题是在ajax请求之前
alert(meeting_timezone); is printing `GMT +8.00`
但是在joinmeeting.php页面上
$meeting_timezone = $_GET['meeting_timezone'];
print $meeting_timezone;
上面的打印语句正在打印值GMT 8.00
(+号不在此处打印)
请告诉我如何解决此问题?
在使用POST和GET方法时,这是一种已知情况,您的+号将转换为空格。 通过POST或GET传递数据的正确方法是使用JavaScript中的encodeURIComponent
。
例如,在您的情况下,请在发送之前执行以下操作:
meeting_timezone = encodeURIComponent(meeting_timezone);
如果您通过以下方式使用JavaScript对URL进行编码,这将有所帮助
encodeURIComponent(uri)
像这样:
data: encodeURIComponent(("user_names="+ user_names + "&image=" +file+"&duration="+ duration +"&user_name="+ user_name + "&meeting_id=" + meeting_id + "&moderator_password=" + moderator_password +"&attendee_password=" + attendee_password +
"&meeting_time=" + meeting_time + "&meeting_timezone=" + meeting_timezone + "&meeting_sms_no=" + meeting_sms_no + "&meeting_logout_url=" + meeting_logout_url +"&meeting_maxp=" + meeting_maxp +"&meeting_name=" + meeting_name )
还看一下这个问题:
可能有用
代替将data:
参数指定为字符串,而使用对象:
data: { user_names: user_names,
image: file,
...
meeting_timezone: meeting_timezone,
...
}
然后,jQuery将负责将其正确转换为查询字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.