0

我想从 MYSQL 数据库中获取我的客户电话号码,并根据用户在之前的下拉框中选择客户将其自动填充到输入框中。

我过去在填写大量数据时设法做到了这一点,但我之前使用的似乎有很多代码来自动填充单个输入框。

我知道如何根据从前一页传递的数据填写客户电话(尽管我在这里删除了该位),但我希望这些数据在用户使用下拉菜单时动态更改。

必须有一种简单的方法来做到这一点,但我是 js 的完全新手(并且只精通 PHP 和 MYSQL)。谁能帮我一把?

我的 PHP/HTML:

$result = mysql_query("SELECT cust_id, name, phone FROM customers ORDER BY name ASC");
$customers = mysql_fetch_array($result);

<label for="customer">Customer:</label>
<select name="customer">
    <option value="0">Add New Customer</option>
        <? foreach ($customers as $customer): ?>
            <option value="<?=$customer['cust_id']?>" <?=($customer['cust_id'] == $parts['cust']) ? "selected" : ""?>><?=$customer['name']?></option>
        <? endforeach; ?>
</select>

<label for="custphone">Customer Phone:</label>
<input type="text" name="custphone" value="">

如果您需要我的其他任何东西,请告诉我,并提前感谢您在这方面的帮助。

4

2 回答 2

0

对于这个答案,我将使用 jQuery 语法,jQuery 是一个免费的 javascript 库,您将来肯定会使用它,阅读更多
要恢复,我们将使用由您的元素触发的事件select,当他的值更改时,我们将处理带有一些参数的 AJAX 请求到 PHP 页面 (ajax.php),该页面返回先前选择的客户的电话号码。

首先,您需要在 HTML 网页中包含带有<script>标记的 jQuery 脚本。

<script src="path/to/jquery.js"></script>

第二次,我们将创建一个新的 javascript 脚本(假设您在 HTML 元素中添加了一些 id):

<script type="text/javascript">
    $(document).ready(function(){ // When the document is ready
         $("select#customers").on("change",function(){ // We attach the event onchange to the select element
             var customer_id = this.value; // We retirve the customer's id
             $.ajax({
                 url : "path/to/ajax.php", // path to you php file which returns the phone number
                 method : "post", // We want a POST request 
                 data : "customer_id="+customer_id, // You'll retrieve this data in your $_POST variable in ajax.php : $_POST['customer_id']
                 success: function(response) { // The function to execute if the request is a -success-, response will be the customer phone number
                     $("input#custphone").value(response); // Fill the phone number input 
                 }
             });
         });
    });
</script>

现在,您已经准备好继续,您应该阅读有关jQueryAJAX的信息。您只需创建“ajax.php”,使用$_POST变量检索您的客户 ID,处理 SQL 查询以检索电话号码,然后使用echo.

于 2012-06-27T15:20:31.920 回答
0

听起来您想研究AJAXjQuery.ajax()让它很容易。

基本上,您在服务器上有一个页面,它查询数据库并返回一个JSON 编码的字符串,javascript 可以将其转换(使用jQuery.parseJSON)回一个数组并填充列表!

用于.change()将事件绑定到下拉列表的更改事件。This will fire whenever the selection changes. 在内部,您想要获取值(参见该页面上的演示)并向服务器发送 AJAX 请求。

服务器上的 PHP 脚本将查询数据库并返回一个 JSON 字符串。在successjQuery AJAX 块的功能中,您可以使用解码的信息填充新列表。有关如何将项目添加到选择的教程,请参阅此页面。

于 2012-06-27T15:14:26.377 回答