1

好的,所以基本上我要做的是使用文本框的值(在大多数情况下是自动完成的)用从数据库中提取的数据填充另一个文本框。

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

我见过一些不同的 jQuery 插件,它们与我想要的类似,但仅适用于选择(我不想要,因为名称可能是要添加的新名称)。

我知道有人会说:“好吧,你为什么不直接从数据库中提取姓名和电子邮件地址,然后在页面加载时填充表单。” 答案是:因为名称会即时添加(当您添加新订单时,请按照订单跟踪软件的思路思考)。

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

提前致谢。

4

3 回答 3

3

您不需要插件来执行此操作,只需使用 blur 事件调用 $.post

$("#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);
});
于 2010-07-11T03:28:01.087 回答
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代码中,您可以$_GET['foo']在php中执行...并且您应该echo为第二个输入框提供所需的数据...。

于 2010-07-11T02:55:21.357 回答
1

这是客户端的样子:

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

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

于 2010-07-11T02:47:14.960 回答