好吧,基本上我正在尝试做的是使用文本框的值(在大多数情况下是自动完成的)来填充另一个文本框,其中包含从数据库中提取的数据。
用户将在一个框中输入一个名称,一旦该输入失去焦点,第二个将自动填充名称的相关电子邮件地址。
我已经看到了一些与我想要的类似的jQuery插件,但只适用于选择(我不想要,因为这个名称可能是一个新的加入)。 / p>
我知道有人会说些什么:“好吧,你为什么不从数据库中提取名称和电子邮件地址,并在页面加载时填写表格。”答案:因为名称将动态添加(在订单跟踪软件的行中,当您添加新订单时)。
我正在使用PHP,MySQL,当然还有jQuery。
提前致谢。
答案 0 :(得分:3)
您不需要插件即可,只需使用模糊事件
调用$ .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);
});
答案 1 :(得分: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
第二个输入框所需的数据....
答案 2 :(得分:1)
这就是客户端的样子:
$('#name').blur(function(){
str = $('#name').val()
$.get("lookupemail.php", { name: str}, function(data){
$('#email').val( data );
});
});
当'name'字段失去焦点时,向lookupemail.php发送请求,并将参数'name'设置为'name'字段。返回请求后,请将其放在“电子邮件”字段中。