2

データベースからのすべての情報をページに配置するテーブルがあります。名、姓、グループなどの順序を示すドロップダウンを追加したい...

どうすればこれを達成できますか?

    <?php $query = "SELECT * FROM contacts WHERE type = 'lead'";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error()); } ?>

    <table>
    <tr><td>ID</td>     <td>Name</td>       <td>Email</td></tr>
    <?php

    while ($row = mysql_fetch_assoc($result))
    {
        echo '<tr>';
        echo '<td>' . $row['id'] . '</td>';
        echo '<td>' . $row['name'] . '</td>';
        echo '<td>' . $row['email'] . '</td>';
        echo '<td>' . '<a href = "/admin/leads/convert-contact.php?id=' . $row[id] . '">Make Contact</a>';
        echo '</tr>';
    }
    echo '</table>';


?>
4

4 に答える 4

0
SELECT *
  FROM Whatever
       ORDER BY CASE 
                  WHEN @order =  'first' THEN first_name
                  WHEN @order = 'last' THEN last_name
                  WHEN @order = 'group' THEN group_name
                  ELSE CAST(id AS Varchar)
                END

すべての順序列は型互換性がなければならないことに注意してください (たとえば、すべての文字/varchar、またはすべての数値)。

于 2013-08-09T17:48:36.677 に答える
0
 <form action='database.php' type='post'>
 <select name='orderby'>
 <option value='firstname'>First Name</option>
 <option value='secondname'>Second Name</option>
 <option value='group'> group</option>
 </select>
 </form>

PHPファイルで

if($_POST['orderby']=='firstname') $lastpart= 'ORDER BY firstname';
if($_POST['orderby']=='lastname') $lastpart= 'ORDER BY lastname';
if($_POST['orderby']=='group') $lastpart= 'GROUP BY field';

<?php $query = "SELECT * FROM contacts WHERE type = 'lead' $lastpart"; ----
于 2013-08-09T17:49:02.790 に答える
0

少しの AJAX で、これを再ソート可能な出力にすることができます。次の例からわかるように、それほど難しくありません。

以下のコードは、ページにドロップダウンを配置し、ユーザーが並べ替え順序を選択できるようにします。選択すると、ソートされた結果が div に表示されます。その後、ユーザーは別の並べ替え順序を選択でき、それらの結果が div に表示されます。

HTML:

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {

                $('#mysel').change(function() {
                    var sby = $(this).val();
                    //alert(sby);
                    $.ajax({
                        type: "POST",
                        url: "another_php_file.php",
                        data: 'sortby=' + sby,
                        success: function(thedata) {
                            $("#results").html(thedata) ;
                        }
                    });
                });

            }); //END $(document).ready()

        </script>
    </head>
<body>

    <div id="results"></div>
    <select id="mysel">
        <option value = '0'>Choose One</option>
        <option value = 'last'>Sort by Last Name</option>
        <option value = 'first'>Sort by First Name</option>
    </select>


</body>
</html>

another_php_file.php

<?php

    $order = $_POST['sortby'];

    // Do your database login here

    $output = '<table><tr><td>ID</td><td>Name</td><td>Email</td></tr>';

    $result = mysql_query("SELECT * FROM contacts WHERE type = 'lead' ORDER BY '$order'");
    $num_rows = mysql_num_rows($result);

    while ($row = mysql_fetch_assoc($result)) {
        $output .= '<tr>';
        $output .= '<td>' . $row['id'] . '</td>';
        $output .= '<td>' . $row['name'] . '</td>';
        $output .= '<td>' . $row['email'] . '</td>';
        $output .= '<td>' . '<a href = "/admin/leads/convert-contact.php?id=' . $row[id] . '">Make Contact</a>';
        $output .= '</tr>';
    }
    $output .= '</table>';

    echo $output;

AJAX を初めて使用する場合は、コツをつかむための非常に簡単な例をいくつか示します。15 分または 20 分かけて遊ぶ価値は十分にあります。

簡単な例

より複雑な例

ドロップダウン 1 での選択に基づいてドロップダウン 2 を設定します

于 2013-08-09T18:07:34.523 に答える