将php变量传递给jquery并使用它在jquery对话框中显示数据

时间:2017-02-27 17:45:35

标签: javascript php jquery html mysql

我正在努力寻找一种在jquery对话框中动态显示mysql / php查询数据的方法。 简而言之,我有一个带有mysql结果的html表。每个tr在其结果旁边都有一个带有相应mysql id的锚标记内的图标。

echo '<a href="index.php?word_id=' . $row['word_id'] . '" class="clickable"><i class="fa fa-table"></i></a>';

当我点击图标时,jquery应该将id传递给新查询并使用新的html表和相应的mysql结果打开对话框。

<div id="ui-dialog-first">
<?php
$query = "SELECT alt1.pron AS pron, alt1.word_form AS word1, alt2.word_form AS word2 FROM alter alt1  LEFT JOIN  alter alt2 ON alt2.pron = alt1.pron WHERE alt1.word_id = '$word_id'";
    $result = mysqli_query($con, $query);
    if (mysqli_num_rows($result) > 0) {
        echo "<table class='alter' style='visibility:hidden;'>";
        while ($row = mysqli_fetch_array($result)) {
        echo "<tr><td>" . $row['pron'] . "</td><td>" . $row['word1'] ."</td><td>" . $row['word2'] . "</td></tr>";                 
}
    echo "</table>";
    ?>  
</div>

我尝试了所有我能找到和想到的东西,但是当jquery对话框打开时,我得到的只是初始html表的最后一行的结果,无论我在哪个图标上clik。这是我的jquery代码,没有对id进行实验:

$(document).ready(function(){
    $('.clickable').click(function(event){
        event.preventDefault();
        $('.ui-dialog-first').dialog({
            open: function(){
                $(this).dialog('option', {
                'minWidth': 700,
                'minHeight': 500, 
                'padding-bottom': 20
                });
                $(this).dialog({
                    classes: {
                        'ui-dialog-titlebar': 'custom-green'
                    }
                });
            }
        });
        $('.alter').css('visibility', 'visible');
         $.ajax({
            url: "index.php",
            method: 'GET',
            data: "{pron:" + pron + "word1:" + word1 + "word2:" + word2 +"}",
            success: function(data)
            {
               $('.alter').html(data);
            }
        });
    });
});

我的问题是,有没有办法将word_id从锚标记传递给查询,然后用相应的结果打开对话框?

1 个答案:

答案 0 :(得分:0)

您总是可以使用JQuery从标记中获取href,然后为word_id解析字符串,但更简单的方法是使用word_id为标记分配id属性。好吧,

2017-02-27T20:06:10.834+0200 E QUERY    [thread1] Error: listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13
} :

然后在点击处理程序中使用JQuery来获取类似echo '<a id="' . $row['word_id'] .'"..... 的id,但请务必将id分配给一个变量,该变量具有ajax数据部分的作用域。

event.target.id

然后,您可以在后端使用查询中正确的word_id。希望有所帮助。