2010-07-11 74 views
1

好吧,基本上我试图做的是使用文本框的值(大多数情况下是自动完成的)用从数据库中提取的数据填写另一个文本框。使用jQuery“自动填充”第二个文本框,根据第一个输入

用户将在一个框中输入名称,一旦该输入失去焦点,则会自动填充名称的相关电子邮件地址。

我已经看到了几个不同的jQuery插件,它们与我想要的相似,但只适用于选择(我不想要,因为名称可能会添加一个新名称)。

我知道有人会说:“嗯,你为什么不从数据库中提取姓名和电子邮件地址,并在页面加载时填写表单。”答案是:因为这个名字将被即时添加(当您添加一个新订单时,请考虑订单跟踪软件的界限)。

我使用PHP,MySQL,当然还有jQuery。

在此先感谢。

回答

3

你并不需要一个插件来做到这一点,只是模糊事件

$("#name").blur(function() { 
    $.post(your_php_file, { name: $(this).val() }, function (data) { 
     $("#email").val(data); 
    }); 
}); 

调用$。员额在你的PHP文件,你就可以拿到名与$_POST["name"]和电子邮件发回的javascript,只是附和它

如果你需要比只是一个字符串加载更多的数据,你应该使用json_encode()来编码阵列

$name = $_POST["name"]; 
//pick data from db 
$arr = array("email"=>$email, "otherstuff"=>$otherstuff); 
echo json_encode($arr); 

而变化您的文章呼吁这一点:

$.post(your_php_file, { name: $(this).val() }, function (data) { 
    $("#email").val(data.email); 
    $("#otherstuff").val(data.otherstuff); 
}); 
+0

这实际上看起来是最简单的方法。非常小的代码,甚至更少的代码更改(对我的PHP),因为我已经使用JSON的自动完成。 – Micheal 2010-07-11 18:30:30

1

下面是它可能看起来像客户端:

$('#name').blur(function(){ 
    str = $('#name').val() 
    $.get("lookupemail.php", { name: str}, function(data){ 
    $('#email').val(data); 
    });  
}); 

在“名称”字段失去焦点发送带有设置为“名称”字段中的参数“名”来lookupemail.php的请求。请求返回时,将其放入“电子邮件”字段。

+0

不使用'的.text()'上inputboxes ....使用'.VAL()',而不是... :) – Reigel 2010-07-11 02:58:40

2

你可以做这样的事情...

$('#input_1').blur(function(){ // blur event, when the input box loses focus... 
    var data = this.value;  // get the data of the this inputbox, in our case id="input_1" 
    $.ajax({ 
     url: 'some/url.php', // your php that is used to query MySql 
     method: 'get',  // method to be used , get/post 
     data: { 
      'foo' : data // the data to be passed, e.g. ?foo=data 
     } 
     success : function(msg){ // when connection to server is successful, msg is the data returned from 'some/url.php' 
      $('#input_2').val(msg); // populate the second inputbox with msg... 
     } 
    }); 
}); 

从jQuery的那上面的代码,你可以做在PHP $_GET['foo'] ...你应该echo所需要的数据,第二输入框... 。

+0

感谢你为这个。我想如果我昨天晚上不那么累,我可以找到这个:http://stackoverflow.com/questions/558445/dynamically-fill-in-form-values-with-jquery 几乎完全是我想要,而且我看到你的答案非常相似。 – Micheal 2010-07-11 18:26:32

相关问题