用于输入用户信息的动态PHP代码


Dynamic PHP Code For Inputting User Info

我正在开发一个用于输入用户信息的PHP表单。我有三个重要的字段:名字、姓氏和电子邮件。我需要做的是在用户输入前两个字段时以及保存之前自动设置电子邮件。例如,当用户在"名字"字段中键入"名字",在"姓氏"字段中输入"姓氏"时,"电子邮件"字段应自动显示First.Last@example.com.

代码已经写好了,这是我正在处理的部分:

echo '<TABLE ><TR><TD >'.TextInput($student['FIRST_NAME'],'students[FIRST_NAME]','<FONT color=red>'._('First').'</FONT>','size=12 class=cell_floating maxlength=50 style="font-size:14px; font-weight:bold;"').'</TD><TD>'.TextInput($student['MIDDLE_NAME'],'students[MIDDLE_NAME]',''._('Middle').'','class=cell_floating maxlength=50 style="font-size:14px; font-weight:bold;"').'</TD><TD>'.TextInput($student['LAST_NAME'],'students[LAST_NAME]','<FONT color=red>'._('Last').'</FONT>','size=12 class=cell_floating maxlength=50 style="font-size:14px; font-weight:bold;"').'</TD><TD>'.SelectInput($student['NAME_SUFFIX'],'students[NAME_SUFFIX]',''._('Suffix').'',array('Jr.'=>'Jr.','Sr.'=>'Sr.','II'=>'II','III'=>'III','IV'=>'IV','V'=>'V'),'','style="font-size:14px; font-weight:bold;"').'</TD></TR></TABLE>';
else
echo '<DIV id=student_name><div style="font-size:14px; font-weight:bold;" onclick=''addHTML("<TABLE><TR><TD>'.str_replace('"',''"',TextInput($student['FIRST_NAME'],'students[FIRST_NAME]','','maxlength=50 style="font-size:14px; font-weight:bold;"',false)).'</TD><TD>'.str_replace('"',''"',TextInput($student['MIDDLE_NAME'],'students[MIDDLE_NAME]','','size=3 maxlength=50 style="font-size:14px; font-weight:bold;"',false)).'</TD><TD>'.str_replace('"',''"',TextInput($student['LAST_NAME'],'students[LAST_NAME]','','maxlength=50 style="font-size:14px; font-weight:bold;"',false)).'</TD><TD>'.str_replace('"',''"',SelectInput($student['NAME_SUFFIX'],'students[NAME_SUFFIX]','',array('Jr.'=>'Jr.','Sr.'=>'Sr.','II'=>'II','III'=>'III','IV'=>'IV','V'=>'V'),'','style="font-size:14px; font-weight:bold;"',false)).'</TD></TR></TABLE>","student_name",true);''>'.$student['FIRST_NAME'].' '.$student['MIDDLE_NAME'].' '.$student['LAST_NAME'].' '.$student['NAME_SUFFIX'].'</div></DIV>';
echo'</td></tr>';

echo '<tr><td>'._('Email').'</td><td>:</td><td>'.TextInput($student['EMAIL'],'students[EMAIL]','','size=100 class=cell_medium maxlength=100').'</td></tr>';

我不知道该如何编辑它,也不知道在哪里添加jquery代码:/我感谢你的帮助,谢谢你:)

HTML

First Name : <input type="text" id="firstName" value=""><br />
Last Name : <input type="text" id="lastName" onchange="createEmail()"><br />
Email : <input type="text" id="email">

Javascript

<script>
function createEmail() {
    var fn = document.getElementById("firstName").value;
    var ln = document.getElementById("lastName").value;
    document.getElementById("email").value = fn+"."+ln+"@example.com";
}
</script>

不需要任何ajax。

使用jQuery模糊函数进行测试,是用户已经离开文本输入字段(或使用keyup),而测试,是名字/姓氏被填充。如果是,则可以使用val()函数获取字段的值,然后可以生成电子邮件,并设置电子邮件字段的值。

你需要这样的东西:

$('#firstName', '#lastName').keyup(function() {
    var domain = 'example.com';
    var email = $('#firtName').val() + '.' + $('#lastName').val() + '@' + domain;
    $('#email').val(email);
});

您不需要ajax,请查看DEMO

$('body').on('blur', '.firstname, .lastname', function(){
    var fname = $.trim($('.firstname').val()), 
        lname = $.trim($('.lastname').val()), 
        email = $('#email'), 
        // Set your domain name here
        prefix = '@example.com';
    if( fname != "" && lname != "" )
        email.val( fname + '.' + lname + prefix );
    else if( fname == "" && lname == "" )
        email.val("");
    else 
        email.val( (fname != "" ? fname : lname) + prefix );
});