我在这里和其他地方搜索过(大约 15 个其他论坛......是的,我也记了数(,我似乎找不到任何与以下内容匹配的先前帖子。要么是这样,要么是我搜索得不够努力......
我想做的:每次有人按下提交按钮时,我希望<input type="text" name="comment_id" id="comment_id" value="">
有一个新的随机字符串(新 id(,这样每次有人按下提交时,id 都不是以前的复制品,因为我正在使用这样的 ID(不是数据库的自动 ID(来识别这些评论。
我目前拥有的<input type="text" name="comment_id" id="comment_id" value="<?php $length = 18; $randomString = substr(str_shuffle("0123456789-abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length); echo $randomString;?>">
分解基本上是这样的
<?php
$length = 18;
$randomString = substr(str_shuffle("0123456789-abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
echo $randomString;
?>
给我一个像这样的 18 个字符的字符串 (BknmexSFAgP7pjsUIo(。
所以总而言之,我只是想要它,以便每次有人按下提交时,输入框都会给我一个新的 ID,我已经尝试使用几种方法,但似乎没有一种方法可以解决问题......
提前感谢您的帮助。
如果你想在不加载页面的情况下动态地执行此操作,您应该使用 ajax 执行此操作。
$.ajax({
url: "url to your php goes here",
},
success: function (data) {
$('#comment_id').val() = data;
},
error: function (e) {
console.log(e);
}
});
好吧,经过很多很多.....好吧,经过大量的搜索,我终于找到了答案。现在这是我自己修改的代码,但我要发布它,以防其他人需要帮助。
我每 1 秒刷新一次,这样如果有人在发表评论后立即决定发表评论,那么之前的评论与当前评论的 id 不同......是的,我知道这没有意义,但话又说回来。:/
<textarea id="comment_id"></textarea>
var myCommentID = setInterval(generateCommentID, 1000);
function generateCommentID() {
var comment = "0123456789-abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var result = "", rand;
for (var i = 0; i < 6; i++) {
for (var j = 0; j < 4; j++) {
rand = Math.floor(Math.random() * comment.length);
result += comment.charAt(rand);
}
}
document.getElementById("comment_id").innerHTML = result;
}
原始代码来自这个性感的小提琴