jQuery get()php按钮提交
我有以下jquery代码jQuery get()php按钮提交,php,jquery,ajax,Php,Jquery,Ajax,我有以下jquery代码 $(document).ready(function() { //Default Action $("#playerList").verticaltabs({speed: 500,slideShow: false,activeIndex: <?=$tab;?>}); $("#responsecontainer").load("testing.php?chat=1"); var refreshId = setInterval(function() { $(
$(document).ready(function() {
//Default Action
$("#playerList").verticaltabs({speed: 500,slideShow: false,activeIndex: <?=$tab;?>});
$("#responsecontainer").load("testing.php?chat=1");
var refreshId = setInterval(function() {
$("#responsecontainer").load('testing.php?chat=1');
}, 9000);
$("#responsecontainer2").load("testing.php?console=1");
var refreshId = setInterval(function() {
$("#responsecontainer2").load('testing.php?console=1');
}, 9000);
$('#chat_btn').click(function(event) {
event.preventDefault();
var say = jQuery('input[name="say"]').val()
if (say) {
jQuery.get('testing.php?action=chatsay', { say_input: say} );
jQuery('input[name="say"]').attr('value','')
} else {
alert('Please enter some text');
}
});
$('#console_btn').click(function(event) {
event.preventDefault();
var sayc = jQuery('input[name="sayc"]').val()
if (sayc) {
jQuery.get('testing.php?action=consolesay', { sayc_input: sayc} );
jQuery('input[name="sayc"]').attr('value','')
} else {
alert('Please enter some text');
}
});
$('#kick_btn').click(function(event) {
event.preventDefault();
var player_name = jQuery('input[name="player"]').val()
if (player_name) {
jQuery.get('testing.php?action=kick', { player_input: player_name} );
} else {
alert('Please enter some text');
}
});
});
当我单击该按钮时,它会重新加载页面以供初学者使用,而且不应该这样做,它也不会处理我的处理程序代码。我已经把这件事弄得一团糟好几个小时了,我肯定这是件愚蠢的事
我试图做的是让一个按钮(0个可见表单字段)触发一个事件。如果我必须把它们放在一个单独的文件中,我可以,但为了简单起见,我把它们都放在同一个文件中。停止加载其余文件的die命令。我能忽略什么呢
我添加了更多的代码。。chat_btn和console_btn编码所有工作,设置相同(使用隐藏字段而不是文本字段)。我无法解释它不工作的原因:(您的回调根本没有被调用,或者
if
条件导致错误。如果它到达if
的任一分支,它将不会重新加载页面,因为这两个分支都以event.prevntDefault()开头
如果在控制台中没有看到任何错误,则可能根本没有绑定回调。是否使用jQuery(document).ready(…)
在DOM可用于操作后绑定事件处理程序
关于风格的一些注意事项:
- 如果
If
的两个分支包含相同的代码,请将该代码移出If
语句:
- 对于表单元素,使用
.val()
而不是.attr('value')
- 不要测试
”
当您确实想要测试真实性时,只需测试值:
您的回调根本没有被调用,或者if
条件导致错误。如果它到达if
的任一分支,则不会重新加载页面,因为这两个分支都以事件.prevntDefault()开始
如果在控制台中没有看到任何错误,则可能根本没有绑定回调。是否使用jQuery(document).ready(…)
在DOM可用于操作后绑定事件处理程序
关于风格的一些注意事项:
- 如果
If
的两个分支包含相同的代码,请将该代码移出If
语句:
- 对于表单元素,使用
.val()
而不是.attr('value')
- 不要测试
”
当您确实想要测试真实性时,只需测试值:
使用return false event.exe而不是preventDefault,并将其放在函数末尾
即
您可能应该在php中使用json_decode,因为您要将json传递给php脚本,这样它将是一个数组。使用return false event.而不是prevent default,并将其放在函数末尾
即
您可能应该在php中使用json_decode,因为您将json传递给php脚本,这样它将是一个数组。我解决了这个问题。我有一个while循环,显然,每个btn名称和输入字段名称必须是唯一的,即使它们都在自己的标记中
$("#playerList").delegate('[id^="kick_btn"]', "click", function(event) {
// get the current player number from the id of the clicked button
var num = this.id.replace("kick_btn", "");
var player_name = jQuery('input[name="player' + num + '"]').val();
jQuery.get('testing.php?action=kick', {
player_input: player_name
});
jQuery('input[name="player"]').attr('value','')
alert('Successfully kicked ' + player_name + '.');
});
我解决了这个问题。我有一个while循环,显然,每个btn名称和输入字段名称必须是唯一的,即使它们都在它们自己的标记中
$("#playerList").delegate('[id^="kick_btn"]', "click", function(event) {
// get the current player number from the id of the clicked button
var num = this.id.replace("kick_btn", "");
var player_name = jQuery('input[name="player' + num + '"]').val();
jQuery.get('testing.php?action=kick', {
player_input: player_name
});
jQuery('input[name="player"]').attr('value','')
alert('Successfully kicked ' + player_name + '.');
});
我同意Andre的建议,但只是想补充一下,您也可以使用.val()而不是.attr('value')。我添加了一个警报('Successfully kicked',player);在jQuery.get之后,它也没有启动..我解决了问题。我有一个while循环,显然,每个btn名称和输入字段名称都必须是唯一的,即使它们都在它们自己的标记中。$kickbtn.=“$('#kick_btn$k')。单击(函数(事件){var player_name$k=jQuery('input[name=\'player$k\'])。val()jQuery.get('testing.php?action=kick',{player_input:player_name$k});alert('Successfully kicked');});\n\n;现在在while循环中创建JS对象。我还在while循环中的字段名中添加了相同的计数。这现在可以正常工作了!我同意Andre的建议,但只想添加一点,即您也可以使用.val()而不是.attr('value')。我添加了一个警报('Successfully kicked',player);在jQuery.get之后,它也没有启动..我解决了问题。我有一个while循环,显然,每个btn名称和输入字段名称都必须是唯一的,即使它们都在它们自己的标记中。$kickbtn.=“$('#kick_btn$k')。单击(函数(事件){var player_name$k=jQuery('input[name=\'player$k\'])。val()jQuery.get('testing.php?action=kick',{player_input:player_name$k});alert('Successfully kicked');});\n\n;现在在while循环中创建JS对象。我还在while循环中的字段名中添加了相同的计数。这现在可以正常工作了!我已经做了您建议的更改,但是它仍然没有在处理程序上启动。无论数据是否正确,我都会在api->调用的日志中看到一些内容。event.default()
也能正常工作,服务器端json解码显然不是问题所在。可能是,当他整理好JS时,但你还没有回答他的问题,甚至没有尝试这样做。我已经做了你建议的更改,但它仍然不会触发处理程序。无论数据是否正确,我都会在api->调用的日志中看到一些内容是对是错。event.preventDefault()
也可以,服务器端json解码显然不是问题。可能是,当他整理好JS时,你没有回答他的问题,甚至没有尝试回答。好吧,我做了你建议的更改。我意识到一个错误,我没有使用jQuery(关于主函数的文档,我更改了基脚以与其余的一起使用。另外,如果你看..chat_btn和console_btn功能正确。我也会为上面的功能添加处理程序代码。好的,我做了你建议的更改
jQuery(document).ready(function () {
jQuery('#kick_btn').click(function(event) {
event.preventDefault();
var player_name = jQuery('input[name="player"]').val()
if (player_name) {
jQuery.get('testing.php?action=kick', { player_input: player_name} );
} else {
alert('Please enter some text');
}
})
});
$(btn).click(function(event){
//code
return false;
});
$("#playerList").delegate('[id^="kick_btn"]', "click", function(event) {
// get the current player number from the id of the clicked button
var num = this.id.replace("kick_btn", "");
var player_name = jQuery('input[name="player' + num + '"]').val();
jQuery.get('testing.php?action=kick', {
player_input: player_name
});
jQuery('input[name="player"]').attr('value','')
alert('Successfully kicked ' + player_name + '.');
});