当用户在很短的时间内(例如双击速度)多次单击提交按钮时,我试图阻止重复数据到数据库.首先,我在一次点击后禁用按钮,然后在3秒后再次启用按钮.我不知道为什么setTimeout("this.disabled = false",3000); 不是在jquery上工作.请帮帮我,下面是我的代码:
$(function() {
$(".btnSendResp").click(function() {
this.disabled = true;
setTimeout("this.disabled=false",3000);
postinResp();
});
});
Run Code Online (Sandbox Code Playgroud) 我听说人们说PHP代码将完成加载然后才会开始加载javascript.在信息如何让JavaScript的等待为MySQL将值分配给PHP变量?
但是当我写道:
<script type="text/javascript">
alert("<?php echo $username; ?>");
</script>
<?php $username = "abc"; ?>
Run Code Online (Sandbox Code Playgroud)
它无法提醒php变量的值.这是因为javascript首先被加载,然后才开始加载php.那么服务器站点脚本的事实是完成加载然后只启动加载客户端站点脚本是错误的?
如果javascript可以在php之前执行,那么我有问题要求javascript等待mysql为php变量赋值.请帮我解决这个问题如何问javascript等待mysql赋值给php变量?
我看到许多网站说不要使用ORDER BY RAND(),例如http://forge.mysql.com/wiki/Top10SQLPerformanceTips所以我运行测试,我测试了20k记录表的速度和性能,其中10k记录他们有用户名="用户名":
SELECT username FROM testingspeed WHERE username='username' ORDER BY RAND();
Run Code Online (Sandbox Code Playgroud)
结果 :
Showing rows 0 - 29 (10,000 total, Query took 0.0119 sec).
id = 1
select_type = SIMPLE
table = testingspeed
type = ref
posible_keys = username
key = username
key_len = 32
ref = const
rows = 3225
Extra = Using where; Using index; Using temporary; Using filesort
Run Code Online (Sandbox Code Playgroud)
因为只执行查询需要0.0119秒,所以它应该是非常好的速度,为什么人们仍然说不要使用ORDER BY RAND()?为什么3225行只受影响?为什么10,000行不受影响?
问题1:我可以使用吗? $userid = mysql_real_escape_string($_GET['user_id']);
或者我需要使用下面的代码更好?
function mysql_prep( $value ){
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" ); //example. php >= v4.3.0
if( $new_enough_php ) { //php v4.30 or higher, undo any magic quote effects so mysql_real_escape_string can do the work
if( $magic_quotes_active ) { $value = stripslashes( $value );}
$value = mysql_real_escape_string( $value );
} else { //before php v4.3.0.
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
}
return $value;
}
$userid = trim(mysql_prep($_GET['user_id']));
Run Code Online (Sandbox Code Playgroud)
问题2:我们真的需要使用md5()或 …
我有关于将mysql放入函数showMsg()的问题.如果它没有被函数showMsg()包装,mysql工作正常,但是当我用函数showMsg()包装它时,它会给出错误消息"Warning:mysql_query():提供的参数不是有效的".如何将mysql放入php函数中?以下是我的代码:
<?php
function showMsg(){
$query2 = "SELECT id, message, username, datetime FROM messageslive ORDER BY id DESC LIMIT 20";
$result2 = mysql_query($query2,$connection) or die (mysql_error());
confirm_query($result2);
$num = mysql_num_rows($result2);
while($msginfo = mysql_fetch_array($result2)){
echo $msginfo['message'];
echo $msginfo['username'];
}
}
<div>
<?php showMsg(); ?>
</div>
?>
Run Code Online (Sandbox Code Playgroud) 当用户单击链接时,我尝试防止页面重新加载,所以我写道:
<a href="javascript: return false">bla</a>
Run Code Online (Sandbox Code Playgroud)
或者
<a href="#">bla</a>
Run Code Online (Sandbox Code Playgroud)
说真的,我不喜欢使用,#因为当用户单击链接时,地址栏上的 url 添加了符号 #,它使 url 看起来很难看。所以我更喜欢使用javascript: return false但萤火虫显示错误:“返回不在功能中”,我可以知道如何修复错误吗?
这是我的情况.我的网站上有3个div.每个div中都有一个按钮.这是我的代码:
<div id="gg1">
<a class="btn">
</div>
<div id="gg2">
<a class="btn">
</div>
<div id="gg3">
<a class="btn">
</div>
Run Code Online (Sandbox Code Playgroud)
我是否知道如何将css样式仅应用于1个按钮而不影响其他2个按钮Css或Jquery?请注意,我无法更改按钮的类和ID.
目前我的网站每隔10秒自动重新加载一个javascript函数,setInterval( "checklatestmsgidLive();", 10000 );我认为即使用户在其他标签上查看其他网站,该功能仍将继续重新加载该功能.如何让它只在用户查看我的网站时重新加载功能?javascript可以检测用户是否正在查看我的网站?
我看到facebook.com墙只在我查看页面时更新新帖子,当我在其他标签上时,它不会更新新帖子.怎么做?
问题:如何在数组中的每个用户名上显示15个随机用户名和单引号?
代码:
$friendsArray = array("zac1987", "peter", "micellelimmeizheng1152013142",.....);
$randomfriends = array_rand($friendsArray, 15); //random select 15 usernames
foreach($randomfriends as $c => $friend){ //wrap each username in a single quote
$friendsArray[$c] = "'".mysql_real_escape_string($friendsArray[$c])."'";
}
$friendsArray2 = join(', ',$friendsArray);
echo $friendsArray2;
Run Code Online (Sandbox Code Playgroud)
输出:
'hh', 'gg', 'ff', 'dd', 'ss', 'aa', 'oo', 'ii', 'uu', 'yy', 'tt', 'rr', 'ee', 'ww', 'qq', micellelimmeizheng1152013142, vv, bb
Run Code Online (Sandbox Code Playgroud)
通过输出可以明显看出这个问题.micellelimmeizheng1152013142,vv,bb是没有单引号的第16,17和18条,它们据说不会被显示,如何删除它们?
<?php
$query3 = "SELECT message FROM messageslive LIMIT 1";
$result3 = mysql_query($query3,$connection) or die (mysql_error());
confirm_query($result3);
while($userinfo3 = mysql_fetch_array($result3)){
$msgLive = $userinfo3['message'];
}
?>
<script type="text/javascript">
var msg = "<?php echo $msgLive ; ?>";
</script>
Run Code Online (Sandbox Code Playgroud)
我担心的是当数据库表有太多的数据要搜索和检索时,所以PHP变量$msgLive还没有值,所以Javascript变量var msg得到空值.如何让javascript等到PHP变量$msgLive得到值然后只将值从php变量转移到Javascript?