Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自php函数的AJAX文本输入值_Php_Ajax_Input_Forms - Fatal编程技术网

来自php函数的AJAX文本输入值

来自php函数的AJAX文本输入值,php,ajax,input,forms,Php,Ajax,Input,Forms,如果我有 <form name="myform" method="POST" action=""> <input type="text" name="mail"> <input type="text" name="firstname"> <input type="text" name="lastname"> <input type="submit"> </form> <input type="text" oncha

如果我有

<form name="myform" method="POST"  action="">
<input type="text" name="mail">
<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="submit">
</form>
<input type="text" onchange="alterEmail(this.value);" />
例如,如果我的地址是约翰。doe@gmail.com

$fullname['firstname'] =  "John"
$fullname['lastname'] = "Doe"

问题是:在用户键入电子邮件地址后,如何将这些名称作为我的
文本输入的
值。。。将电子邮件发送到PHP文件:

function alterEmail(email){
    $.get('getName.php',
        {'email': email},
        function(data){
            names = data.split('.');
            $('.fname').html(names[0]);
            $('.lname').html(names[1]);
        }
    );
}
PHP文件如下所示:

<?php
$splitEmail = explode('@',$_GET['email']);
echo $splitEmail[0];
?>

当然,只有当电子邮件看起来像约翰时,这才有效。doe@gmail.com. 您可以严格使用Javascript实现这一点,但您要求使用AJAX

另外,要使用该Javascript函数,可以使用onchange调用它,比如

<form name="myform" method="POST"  action="">
<input type="text" name="mail">
<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="submit">
</form>
<input type="text" onchange="alterEmail(this.value);" />

使用jquery:

var email = $('input[name="mail"]'),
firstname = $('input[name="firstname"]'),
lastname = $('input[name="mailastnamel"]');

email.on('blur', function() {
    $.ajax({
        url: "ajax.php",
        data: {'email': email.val()},
                type: 'post',
        success: function(result) {
        if(result.firstname && result.lastname) {
            firstname.val(result.firstname);
            lastname.val(result.lastname);
        }
    },
    dataType: 'json'
    });
});
创建一个名为ajax.php的php文件

<?php
function get_fullname($email){
//some code here that gives a value to $firstname and $lastname
$fullname = array(firstname => $firstname, lastname=>$lastname)
Return $fullname
}

if(isset($_POST['email'])) {
  $fullname = get_fullname($_POST['email']);
  echo json_encode($fullname);
}
?>

我正在阅读所有答案。我用name和first name做了一个简单的例子,但我真正的目的是得到一个可伸缩的代码,在这个代码中函数可以从邮件中获得更多信息(例如通过对repertory的cURL请求)。因此,我将尝试寻找一种处理此类信息的代码。