2010-09-07 61 views
1

我有一个表单,其中包含一个名为Client_ID的选择以及一些其他文本输入。我需要的是,当用户选择CLIENT_ID,我的领域地址1,地址2等应与沿jquery根据选择值从表中填充文本输入

SELECT Address1, Address2 from Client where Client_ID = Client_ID 

行数据库查询的结果填充我知道这是一个小白有点问题,但真的很感谢一些最简单和最好的方法来帮助做到这一点。

回答

2

你应该做这样的事情与jQuery + JSON

首先从here所有下载的jQuery的,包括它在你的应用程序。

如果home.php,你下载的jQuery文件(jQuery的1.4.2.min.js)和访问getdata.php在同一个文件夹,然后您home.php会看起来像这样的:

home.php(文件包含您的形式)

<html> 

<head> 

    <script type="text/javascript" src="jquery-1.4.2.min.js"></script> 

    <script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     jQuery('#Client_ID').live('change', function(event) { 
      $.ajax({ 
       url  : 'getData.php', 
       type : 'POST', 
       dataType: 'json', 
       data : $('#myform').serialize(), 
       success: function(data) { 
         for(var id in data) {   
           $(id).val(data[id]); 
         } 
       } 
      }); 
     }); 
    }); 
    </script> 

</head> 

<body> 

    <form id='myform'> 
    <select name='Client_ID' id='Client_ID'> 
     <option value=''>Select</option> 
     <option value='1'>Client 1</option> 
     <option value='2'>Client 2</option> 
    </select> 

    <input type='text' name='address1' id='address1'> 
    <input type='text' name='address2' id='address2'> 

    <select name='gender' id='gender'> 
     <option value=''>Select</option> 
     <option value='1'>Male</option> 
     <option value='2'>Female</option> 
    </select> 

    </form> 

</body> 


</html> 

访问getdata.php

<?php 

$clientId = $_POST['Client_ID']; // Selected Client Id 

$query = "SELECT Address1, Address2 from Client where Client_ID = $clientId"; 
$result = mysql_query($query); 
$row = mysql_fetch_array($result, MYSQL_ASSOC) 

$add1 = $row[Address1]; 
$add2 = $row[Address2]; 
$gender = 1; 

$arr = array('input#address1' => $add1, 'input#address2' => $add2, 'select#gender' => $gender); 
echo json_encode($arr); 

?> 

我已经在我的机器上测试过这段代码,它正在工作。

+0

(+1)虽然我总是发现如果我打算在客户端处理动态字符串,从服务器返回json是最安全的。 – Bob 2010-09-07 09:36:15

+0

使用你的方法,我回过头来看看getdata.php中有效的数据,如果我在浏览器中调用页面的话。但是,更改选择的值时没有任何事情发生。我是否正确使用jquery代码,将其放置在页面的头部部分中? – Istari 2010-09-07 13:16:09

+0

如果选择更改事件没有发生,那么这意味着您的jQuery代码没有正确包含或者您的jQuery库不包含在内。是的,您可以在头部添加jquery代码,但必须在''标签中关闭它,并使用ready功能。看看编辑答案。 jquery代码现在添加在头部分中。仔细阅读整个答案,然后重试。如果不成功,请再次报告,我会尽力帮忙。 – NAVEED 2010-09-08 02:26:12

1

阅读this tutorial。我认为它可以帮助您理解将数据从客户端移动到服务器的概念,反之亦然。

请记住,在你的情况下,你需要结合事件。

$(document).ready(function(){ 
    $("#my_select_box").change(function() 
    { 
     //send the data to the server as in the tutorial above 
    }); 
}); 
相关问题