Javascript 在onclick函数之后显示从数据库检索到的tweet

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

我在应用程序中使用JavaScript、PHP和HTML。我有一个包含tweets的SQL数据库。我需要从数据库中查询并在点击关键字(连接到超树)后显示推文。我已经研究并尝试在index.php的myFunction()中包含一个外部php文件(generatetweets.php)。但是它不起作用。谁能给我点化一下,或者给我一些参考指导? 先谢谢你

已提取example2.js,其中child.name引用超树中的关键字

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('+'&#39;'+child.name+'&#39;'+')"><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>