Javascript 在onclick函数之后显示从数据库检索到的tweet
我在应用程序中使用JavaScript、PHP和HTML。我有一个包含tweets的SQL数据库。我需要从数据库中查询并在点击关键字(连接到超树)后显示推文。我已经研究并尝试在index.php的myFunction()中包含一个外部php文件(generatetweets.php)。但是它不起作用。谁能给我点化一下,或者给我一些参考指导? 先谢谢你 已提取example2.js,其中child.name引用超树中的关键字Javascript 在onclick函数之后显示从数据库检索到的tweet,javascript,php,mysql,Javascript,Php,Mysql,我在应用程序中使用JavaScript、PHP和HTML。我有一个包含tweets的SQL数据库。我需要从数据库中查询并在点击关键字(连接到超树)后显示推文。我已经研究并尝试在index.php的myFunction()中包含一个外部php文件(generatetweets.php)。但是它不起作用。谁能给我点化一下,或者给我一些参考指导? 先谢谢你 已提取example2.js,其中child.name引用超树中的关键字 onComplete: function(){ //Lo
onComplete: function(){
//Log.write("done");
//Make the relations list shown in the right column.
//ONCLICK FUNCTION FOR KEYWORDS TO LOAD RELATED TWEETS
var node = ht.graph.getClosestNodeToOrigin("current");
var html = "<div><b>Keyword: " + node.name + "</b></div>";
html += "<ul>";
node.eachAdjacency(function(adj){
var child = adj.nodeTo;
var childName=child.name;
html += '<a onClick="myFunction('+'''+child.name+'''+')"><li>'+child.name + '</li></a>';
});
html += "</ul><br />";
$jit.id('inner-details').innerHTML = html;
}
onComplete:function(){
//记录。写入(“完成”);
//使关系列表显示在右栏中。
//用于加载相关推文的关键字的ONCLICK函数
var node=ht.graph.getClosestNodeToOrigin(“当前”);
var html=“关键字:”+node.name+”;
html+=“”;
节点.每个hadjacy(函数(adj){
var child=adj.nodeTo;
var childName=child.name;
html+='
函数myFunction(){
$(“#demo”).load(“generatetweets.php”);
}
Hypertree引用自,我使用nodejs获得tweets并将其附加到div。这是我的代码。
#
提交
var socket=io.connect(“链接到节点”);
var-link;
var标签;
var a;
函数解盎司(函数、等待、立即){
var超时;
返回函数(){
clearTimeout(超时);
timeout=setTimeout(函数(){
超时=空;
if(!immediate)函数apply();
},等等);
if(立即和超时)函数应用();
};
};
var func=debounce(函数(){
$('#tweet').html(“”);
emit('message',$('#tag').val();
tag=$('#tag').val();
链接=”http://twitter.com/hashtag/“+标签;
a=“”;
},1000);
$('.hash').keypress(func);
$('.hash')。在('change',function()上{
$('#tweet').html(“”);
emit('message',$('#tag').val();
tag=$('#tag').val();
链接=”http://twitter.com/hashtag/“+标签;
a=“”;
});
socket.on('message',函数(msg){
控制台日志(消息长度);
$('#tag').val('');
var regex=/(https?:\/\/([-\w\.]+)+(:\d+)(\/([\w\/\.]*(\?\S+)))/ig;
var hashregex=/(#[a-z0-9][a-z0-9\-#]*)/ig;
控制台日志(链接);
对于(变量i=0;i”)之后;
}
});
您好,谢谢您的回复。我可以检索推文并将其插入mysql数据库。但现在,当我单击关键字时,我希望它再次从mysql数据库检索关键字的推文。那么我如何增强我的代码来做到这一点呢?谢谢。
<?php
// connect to the database
include "mysqli.connect.php";
// create your SQL statment to retrieve everything from
// the users table
$sql = "SELECT * FROM post WHERE content LIKE '%school%' ORDER BY date DESC";
// run the query
$result = $mysqli->query($sql);
// check for error
if ($mysqli->errno)
{
error_log($mysqli->error);
echo "<br />Something's wrong";
exit();
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
</head>
<body>
<?php
// Check if there are records in the first place
if ($result->num_rows < 1)
{
echo "<h3>No records found</h3>";
}
// Iterate through the records
$counter = 0;
// Use fetch_array to get rows returned one at a time
while($row = $result->fetch_array(MYSQLI_ASSOC))
{
?>
<table>
<tr id="tweetlist">
<td style="width:50px">
<!-- name goes here -->
<!--<img id="img<?=$counter?>" style="padding-right:5px" src="<?=$row["displaypicture"]?>"></img>-->
</td>
<td>
<!-- email textfield goes here -->
<span id="date<?=$counter?>" style="color:#CCFF33">[<?=$row["date"]?>] </span>
<span id="name<?=$counter?>">@<?=$row["username"]?>: </span>
<span id="emailTxt<?=$counter?>"><?=$row["content"]?> <span/>
</td>
</tr>
</table>
<br/>
<?php
$counter++;
}
$result->free();
$mysqli->close();
?>
</body>
<body onload="init();">
<!-- Header -->
<div id="header" class="container">
<!-- Logo -->
<h1 id="logo"><a href="index.php">Mood</a></h1> <!-- logo from style-n1.css -->
<div id="center-container">
<div id="infovis"></div>
</div>
<div id="right-container">
<div id="inner-details"></div>
<div id="log"></div>
<div id="node_name"></div>
<div id="demo" style="padding-left: 50px">
<script type="text/javascript">
function myFunction() {
$("#demo").load("generatetweets.php");
}
</script>
</div>
</div>
</div>
</body>
I obtained tweets using nodejs and append it to div. Here is my code.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form>
#<input type="text" id="tag" class="hash"/>
<button>submit</button>
</form>
<div id="tweets"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="/socket.io/socket.io.js"> </script>
<script>
var socket = io.connect("link to nodejs");
var link;
var tag;
var a;
function debounce(func, wait, immediate){
var timeout;
return function(){
clearTimeout(timeout);
timeout = setTimeout(function() {
timeout = null;
if (!immediate) func.apply();
}, wait);
if (immediate && !timeout) func.apply();
};
};
var func = debounce(function(){
$('#tweet').html("");
socket.emit('message', $('#tag').val());
tag=$('#tag').val();
link="http://twitter.com/hashtag/"+tag;
a="<a href="+'link'+" target='_blank'> #"+tag+"</a>";
},1000);
$('.hash').keypress(func);
$('.hash').on('change',function(){
$('#tweet').html("");
socket.emit('message', $('#tag').val());
tag=$('#tag').val();
link="http://twitter.com/hashtag/"+tag;
a="<a href="+'link'+" target='_blank'> #"+tag+"</a>";
});
socket.on('message', function(msg){
console.log(msg.length);
$('#tag').val('');
var regex = /(https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*(\?\S+)?)?)?)/ig ;
var hashregex= /(#[a-z0-9][a-z0-9\-_]*)/ig;
console.log(link);
for(var i = 0; i < msg.length; i++){
msg[i].tweettext=msg[i].tweettext.replace(hashregex,a);
msg[i].tweettext=msg[i].tweettext.replace(regex, "<a href='$1' target='_blank'>$1</a>");
$('#tweets').after('<div>UserName: ' + msg[i].username+ '</div>');
$('#tweets').after('<div>Text: ' + msg[i].tweettext+ '</div>');
$('#tweets').after('<div>Time: ' + msg[i].timedate+ '</div>');
$('#tweets').after('<br></br>');
}
});
</script>
</body>
<html>