我正在努力从Google PHP API获取额外的范围信息.我正在使用它与JavaScript一起获取访问令牌(不确定这是否正确,但它适用于我)
我的页面上有一个Google注册按钮,它连接到以下功能.基本上,它获得一个响应令牌,通过AJAX发送到我的PHP服务器.
gapi.load('auth2', function() {
// Retrieve the singleton for the GoogleAuth library and set up the client.
auth2 = gapi.auth2.init({
client_id: 'XXXX',
cookie_policy: 'single_host_origin',
// Requesting additional scopes
scope: 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.login'
});
auth2.attachClickHandler(document.getElementById('google-login-signup'), {},
function(googleUser) {
if ( auth2.isSignedIn.get() ) {
var data = {
'action': 'social_google_login',
'_nonce': $('#google-login-signup').attr('data-nonce'),
'redirect_to': $('#google-login-signup').attr('data-redirect-to'),
'token': googleUser.getAuthResponse().id_token
}
$.ajax({
url: ajax_url,
type: 'POST',
data: data,
success: function(response) {
console.log(response);
if ( response.success === true ) {
window.location.href = response.data.redirect;
} …Run Code Online (Sandbox Code Playgroud) 在我的网站上,用户可以使用一些预设标签发布文章并相应地标记它们.这些标签采用复选框的形式.示例如下:
<input type="checkbox" name="wpuf_post_tags[]" class="new-post-tags" value="Aliens" /> Aliens
<input type="checkbox" name="wpuf_post_tags[]" class="new-post-tags" value="Ghosts" /> Ghosts
<input type="checkbox" name="wpuf_post_tags[]" class="new-post-tags" value="Monsters" /> Monsters
Run Code Online (Sandbox Code Playgroud)
您可能知道,复选框看起来像这样:
[]外星人
[o]幽灵
[]怪物
我想要的是将复选框设置为一个大按钮,其中包含值.然后让它具有"切换"效果.
[外星人] [幽灵] [怪物]
我该怎么做呢?
我正在创建一个响应式设计,因此我的网站在桌面和移动设备上都能很好地查看.在我的网站上,我的一个div上有一个相当大的背景图像.
现在我一直想知道的是:我的div上的背景图像是否被媒体查询中的颜色替换?
例:
div {
background: url(img/large-image.jpg);
}
@media screen and (min-width: 240px) and (max-width:830px) {
div {
background: #000;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在设置某种小形式,以确定我的用户想要匿名提交表单,以及他们提交的内容是否为原创内容.
第一个AJAX调用似乎工作正常,但是当通过AJAX从PHP文件加载新内容时,jQuery函数似乎不起作用.
它应该像这样工作.
这是我的代码:
jQuery的
// User
$('#user-submission').on( "click", function() {
$.ajax({url:'<?php echo get_template_directory_uri(); ?>/submission/user-submission.php',success:function(result) {
$("#submit-section").html(result).fadeIn('slow');
}});
});
// Anonymous
$('#anonymous-submission').on( "click", function() {
$.ajax({url:'<?php echo get_template_directory_uri(); ?>/submission/anonymous-submission.php',success:function(result) {
$("#submit-section").html(result).fadeIn('slow');
}});
});
// User -> Original
$('#original-submission-user').on( "click", function() {
$.ajax({url:'<?php echo get_template_directory_uri(); ?>/submission/original-user-submission.php',success:function(result) {
$("#submit-section").html(result).fadeIn('slow');
}});
});
// User -> Existing
$('#original-submission-anonymous').on( "click", function() {
$.ajax({url:'<?php echo get_template_directory_uri(); ?>/submission/original-anonymous-submission.php',success:function(result) {
$("#submit-section").html(result).fadeIn('slow');
}});
});
// Anonymous -> Original …Run Code Online (Sandbox Code Playgroud) 我将 PHP 与 AJAX 结合使用,以实现我网站上的许多功能。我已经使用 Javascript 在客户端实现了一种速率限制系统。基本上,单击后禁用按钮 1 秒。
虽然这对于更无辜的情况来说效果很好,但我觉得我也需要在服务器端做一些事情来限制请求。
基本上,我希望用户每秒可以进行最大数量的 AJAX 调用。事实上,每秒一个似乎是合理的。
一种方法是以某种方式将每个请求记录到我的 AJAX 回调中,并在发出新请求之前从该表中读取。但这会极大地增加我的服务器和数据库的工作负载。
有没有其他方法可以做到这一点?
function comment_upvote_callback() {
// Some sort of rate limit??
// $_POST data validation
// Add upvote to database
// Return success or error
}
add_action( 'wp_ajax_comment_upvote_callback', 'comment_upvote_callback' );
Run Code Online (Sandbox Code Playgroud)
var is_clicked = false;
if ( is_clicked == false ) {
$('#comments').on('click', '.comment-upvote', function(event) {
event.preventDefault();
// Button disabled as long as isClicked == true
isClicked = true;
// Data to be sent …Run Code Online (Sandbox Code Playgroud) 我正在开发一个拖放文件上传器,可以通过单击标签或将文件拖放到标签上来触发。
输入字段有一个 jQueryon change事件,当选择文件时会触发该事件。但它仅在通过资源管理器菜单选择文件时有效,而在拖放事件中无效。为什么?
$(document).ready(function() {
$('label').on('drag dragstart dragend dragover dragenter dragleave drop', function(event) {
event.preventDefault();
event.stopPropagation();
})
.on('dragover dragenter', function() {
$(this).addClass('is-dragover');
})
.on('dragleave dragend drop', function() {
$(this).removeClass('is-dragover');
})
.on('drop', function(event) {
// Set file on drop
$('input[type=file]').prop('files', event.originalEvent.dataTransfer.files);
});
// Check if change event works
$('input[type=file]').on('change', function(event) {
$('#result span').text(event.target.files[0].name);
});
});Run Code Online (Sandbox Code Playgroud)
input {
display: block;
margin-bottom: 10px;
}
label {
padding: 20px;
display: inline-block;
border: 2px dashed grey;
}
label:hover {
background: lightgray;
cursor: …Run Code Online (Sandbox Code Playgroud)ajax ×2
css ×2
javascript ×2
jquery ×2
php ×2
checkbox ×1
file-upload ×1
google-api ×1
html ×1
input ×1
toggle ×1
wordpress ×1