【问题标题】:View customer info on select change查看有关选择更改的客户信息
【发布时间】:2014-06-26 16:27:00
【问题描述】:

我正在创建一个页面,该页面将允许管理员从下拉列表中选择用户,该下拉列表从数据库中填充。选择此人后,将在页面上查看与该人关联的信息。我已经有一个选择语句,它选择了所有信息,并且下拉菜单正在正确填充。但是,我不确定如何让所选用户的信息在选择后显示在页面上。我是否需要做一个完全不同的选择语句和查询来检查选择了哪个客户?还是有别的办法?

customer.php

<div id="view_form" class="view">
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
        <fieldset>
            <label for="viewCustomer">Select Customer</label>
            <?php
                echo "<select name='selectCust' id='selectCust'>";
                echo "<option></option>";
                while($row = mysqli_fetch_assoc($custResult)){
                    $name = "{$row['fName']} {$row['lName']}";
                    echo "<option>$name</option>";
                }
                echo "</select>";
            ?>
        </fieldset>
    </form>
</div>

viewUser.php

if(isset($search)){
    $select = "SELECT * FROM $cust WHERE acctNum='{$search}'";
    $result = mysqli_query($db, $select);
    if(mysqli_num_rows($result) > 0){
        if($row = mysqli_fetch_assoc($result)){
            $acct = "{$row['acctNum']}";
            echo $acct;
        }
    }
}

script.js

$(document).ready(function(){
    function searchAjax(){
        var search = $('#selectCust').val();
        $.post('includes/viewUser.php', {searchUsers: search}, function(data){
            $('#view_form').append(data);
        })
    }       
    $('#selectCust').on('change', function(ev){
        ev.preventDefault();
        searchAjax();
    })
})

【问题讨论】:

    标签: php jquery ajax mysqli


    【解决方案1】:

    搜索.php

        <script type="text/javascript "src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    
        <script type='text/javascript'>
        $(document).ready(function(){
    
            $(".dropdown-users").on("change",function(event){
            event.preventDefault();
            search_ajax_way();
            });
    
        });
    
        function search_ajax_way(){
            var search_this=$("dropdown-users").val();
    
            $.post("Ajaxsearch.php", {searchusers : search_this}, function(data){
                $(".results").html(data);   
            })
        }
        </script>
    
        <div id="view_form" class="view">
            <form method="post">
                <fieldset>
                    <label for="viewCustomer">Select Customer</label>
                    <?php
                        echo "<select class="dropdown-users">";
                        echo "<option></option>";
                        while($row = mysqli_fetch_assoc($custResult)){
                            $name = "{$row['fName']} {$row['lName']}";
                            $acct = $row['acctNum'];
                            echo "<option value="$acct">$name ($acct)</option>";
                        }
                        echo "</select>";
                    ?>
                </fieldset>
            </form>
        </div>
    
    
    
        <label>Enter</label>
        <input type="text" name="search_query" id="search_query" placeholder="What You Are Looking For?" size="50"/>
        <input type="<span id="IL_AD1" class="IL_AD">submit</span>" <span id="IL_AD6" class="IL_AD">value</span>="Search" id="button_find" />
    
        <div class="results"></div>
    

    //****************************************** ****************************************************** ****************************************************** ************************************************/ /

    Ajaxsearch.php

        <?php
        $con = mysqli_connect("localhost","my_user","my_password","my_db"); // Enter your information here
        $term = $_POST['searchusers']
        $term = mysqli_real_escape_string($con, $term);
        if($term == "")
            echo "Enter Something to search";
        else {
            $query = mysqli_query($con, "select * from USERDATEBASEHERE where ID = '{$term}' ");
            $string = '';
    
            if (mysqli_num_rows($query) > 0) {
    
                if (($row = mysqli_fetch_assoc($query)) !== false) {
                   $string = "{$row['ID']}";
                }
    
            } else {
                $string = "This Person does not exist";
            }
    
                echo $string;
        }
        ?>
    

    【讨论】:

    • 你有什么参考资料可以让我学习如何做到这一点吗?我从未尝试过混合 PHP 和 AJAX。
    • 你还需要这个吗我现在就写
    • 我愿意。我似乎无法弄清楚我需要做什么。
    • 刚刚添加了一些我没有测试过的代码,显然其中一些你需要更改你的数据库信息等。
    • 太棒了,谢谢。我将以此作为参考并尝试使用它,然后让您知道它是如何进行的。
    【解决方案2】:
    <div id="view_form" class="view">
        <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
            <fieldset>
                <label for="viewCustomer">Select Customer</label>
                <?php
                    echo "<select name=\"somename\" onchange=\"this.form.submit();\">";
                    echo "<option value=\"\">Select User</option>";
                    while($row = mysqli_fetch_assoc($custResult)){
                        $name = "{$row['fName']} {$row['lName']}";
                        $acct = $row['acctNum'];
                        echo '<option value="'.$acct.'">$name ($acct)</option>';
                    }
                    echo "</select>";
                ?>
            </fieldset>
        </form>
    </div>
    

    options必须有一些引用值,通过它可以检索到选定用户的详细信息,当option的值没有被初始化时,option的默认值就是option的label。

    【讨论】:

    • 这甚至没有解决问题。您所做的只是将 value 属性添加到 option 标签,并在 select 标签中创建了一个虚构的提交函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    相关资源
    最近更新 更多