我正在建立一个@mention脚本,而我却陷入了一个小问题。
因此,每个用户选择一个用户然后点击该用户,它会将用户名附加到newmsg div中,然后您也可以写一些文本,就像您在twitter或facebook上找到的状态一样。像这样。我现在也在使用旧的jquery' live'但也会很快改变。
$(".addname").live("click",function()
{
var username=$(this).attr('title');
var old=$("#newmsg").html();
var contents=old.replace(word,"");
$("#newmsg").html(contents);
var E="<a class='red' contenteditable='false' href='/profile.php?username="+username+"'>"+username+"</a>";
$("#newmsg").append(E);
$("#display").hide();
$("#newmsg").focus();
我想以某种方式获得该用户名,以便能够将其添加到我的插入内容,以便在插入ajax帖子时将其保留为链接。
$(document).ready(function(){
$("form#myforms").submit(function(event) {
event.preventDefault();
var content = $(this).children("#toid").val();
var newmsg= $(this).children('#newmsg').text();
var USERNAME HERE= ??;
var privacy = $("#privacy").val();
$.ajax({
type: "POST",
url: "insert.php",
cache: false,
dataType: "json",
data: { toid: content, newmsg: newmsg, privacy: privacy, USERNAME HERE },
以下是我在insert.php中使用的链接,用于将@username转换为链接。请注意下面我的$ _POSTvariables没有被清理,并且容易受到SQL注入攻击。但这将得到纠正。
$_POST['newmsg']=str_replace('@','<a href="profile.php?username='.$_POST['username'].'">'.$_POST['username'].'</a>',$_POST['newmsg']);
我尝试使用
var username = $(this).children(".addname").val();
但它表示未定义。
当用户检查可用用户并点击它们进行选择时,这是html。
<div class="display_box "align="left">
<? echo "<img class='image' style='border:none;padding:0px;display:inline;' border=\"0\" src=\"userimages/cropped".$id.".jpg\" onerror='this.src=\"userimages/no_profile_img.jpeg\"' width=\"40\" height=\"40\" >"; ?>
<a href="#" class='addname' title='<?php echo $username; ?>'><?php echo $fname." ".$lname; ?></a>
</div>
</br>
答案 0 :(得分:1)
其链接(a href
),请使用
var username = $(".addname").attr("href");
而不是
var username = $(this).children(".addname").val();