【问题标题】:AJAX text input value from php function来自php函数的AJAX文本输入值
【发布时间】:2013-03-22 00:56:33
【问题描述】:

如果我得到类似的东西

<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>

我有一个 php 函数,当它给定电子邮件时,它会返回一个带有全名的数组,例如:

function get_fullname($email){
//some code here that gives a value to $firstname, 
//$lastname, $age and $gender (for example using a cURL request)

$fullname = array(
firstname => $firstname, 
lastname=>$lastname, 
age=>$age, 
gender=>$gender);

Return $fullname;
}

例如,如果我的地址是 john.doe@gmail.com

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

问题是:在用户输入电子邮件地址后,如何将这些名称设为我的text inputvalue

【问题讨论】:

  • 我现在正在阅读所有答案。我用名字和名字做了一个简单的例子,但我真正的意图是获得一个可扩展的代码,该函数可以从邮件中获取更多信息(例如通过一个 cURL 请求到一个目录)。因此,我将尝试寻找可以处理此类信息的代码。

标签: php ajax input forms


【解决方案1】:

使用 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);
}
?>

【讨论】:

    【解决方案2】:

    嗯...将电子邮件发送到 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];
    ?>
    

    当然,这只有在电子邮件看起来像 john.doe@gmail.com 时才有效。您可以为此使用严格的 Javascript,但您要求使用 AJAX。

    此外,要使用该 Javascript 函数,您可以使用 onchange 调用它,例如

    <input type="text" onchange="alterEmail(this.value);" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 2021-11-04
      相关资源
      最近更新 更多