簡體   English   中英

Javascript將文本從db轉換為超鏈接

[英]Javascript converting text from db to a hyperlink

我開始探索ajax,不知怎的,我對它很好,不是太難,也不容易正常。 無論如何,我對這個項目有困難。 它涉及ajax,php,js,mysql。 我實際上是在試圖復制Facebook的標記風格。 當您在帖子中標記某人時,全名將變為指向標記用戶個人資料的超鏈接。 這只是我覺得的一個小問題,它只是我對JS的新手。 我已經完成了其余的工作,但是我在將文本轉換為帶有js的超鏈接時遇到了問題。 我想在putin_livesearch()代碼中使用它。

這是我的代碼。

的index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FB TAG</title>

<style>

.namesearch {
    cursor:pointer;

}


</style>

<script type="text/javascript">


function putin_livesearch(fname, lname) 
{

//document.getElementById('searchbar').value = (fname + " " +lname);

//document.location.href='#'+ window.document.getElementById('searchbar').value = (fname);

window.document.location.href="#"+window.document.getElementById('searchbar').value;

}



function showResult(str)
{
if (str.length==0)
  {
  document.getElementById("livesearch").innerHTML="";
  document.getElementById("livesearch").style.border="0px";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
    document.getElementById("livesearch").style.border="1px solid #A5ACB2";


    }
  }
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>

<body>
<form>
  <input id ="searchbar" name="wallpost" type="text" onkeyup="showResult(this.value)"  />
  <div id="livesearch"></div>
</form>
</body>
</html>

getuser.php

<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("place_main", $con);

$sql=" SELECT * FROM profiles WHERE firstname like '".$q."%' ";

$result = mysql_query($sql);



while($row = mysql_fetch_array($result))
  {
  $fname = $row['firstname'];
  $lname = $row['lastname'];


  echo '<span class ="namesearch" onclick="putin_livesearch(\''.$fname.'\',\''.$lname.'\'  )"> '. $fname ." ". $lname .' </span><br />';


  //echo "<span class ='namesearch' onclick='putin_livesearch(" .$fname. ", " .$lname. " )'> " . $fname . " " . $lname . "</span><br />";
  }


mysql_close($con);
?>

在你的PHP上,只需做這樣的事情

echo "<a href='your-url-for-the-user'><span class ="namesearch" onclick="putin_livesearch(\''.$fname.'\',\''.$lname.'\'  )"> '. $fname ." ". $lname .' </span></a><br />";

只需在PHP中操作它然后我很確定它會在你的前端輸出相同的內容。

好吧,我想我想要的是不可能的。 為了測試,我實際上嘗試在帶有標記的文本區域中添加值。 它不會將其轉換為鏈接。 實際上用fb標記了一個用@在牆上的朋友來檢查fb並沒有把它放到一個鏈接上,但是之后發布的時候確實如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM