使用来自PHP脚本的输入数据调用jQuery函数


Call a jQuery function with input data that comes from a PHP script

我有这个函数http://jsfiddle.net/wnFsE/。正如您所看到的,每次用户在文本域中写入语言,然后点击add按钮时,都会向列表中添加新的语言。然后,当用户点击save时,所有的信息将通过POST发送。

直到现在,一切都很好。但是,当用户发送信息时,信息存储在我的MySQL数据库中。因此,每次当用户再次访问该页面时,他都需要看到上次会话中已经保存的语言。

在我的PHP脚本中,每次用户来的时候,我从数据库中检索语言,但我不知道如何将它们添加到列表中。解决方案是调用$("#add").click(function() {从PHP脚本检索数据从MySQL,但我不知道如何做到这一点。

如果有任何帮助,这是一个简单的PHP函数,它从用户那里检索语言:

function list_lang() {
    $this->DBLogin();
    $result = mysql_query("SELECT * FROM ".table_lang." WHERE id_user=1");
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo $row['lang']." ".$row['level']."<br>";
        //instead of the echo, here will be the call to jquery (if possible)
    } 
}

一个简单的解决方案:

$buildHTML = '';
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $buildHTML .= '<li>'.$row['lang'].'<input type="hidden" name="languages[]" value="'.$row['lang'].'" /><a href="#" class="remove_lang">Remove</a></li>';
}

然后是

<script type="text/javascript">
    var UserLangs = <?php echo $buildHTML; ?>;
    $('#langs').append(UserLangs);
</script>

你可以这样做:

<?php
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<script type="text/javascript">
...
...
listitem_html += <?php echo $row['lang']. $row['level'] . '<br>'?>;
...
...
</script>
<?php
} 
?>