javascript - json数组值没有传回jquery

标签 javascript php jquery json

嗨,我正在尝试动态验证我的注册表单,以便当用户使用 jquery 和 php 在输入字段中输入值时进行检查。非常感激任何的帮助。

html

   <DOCTYPE html>

<html lang="en">

<head>
     <meta charset="utf-8">
     <title>jQuery Tutorial</title>
</head>

<body>
<form>
<input type="text" id="fname" size ="25" placeholder="firstname" />
<span id="fname_feedback"></span></br></br>
<input type="text" id="lname" size ="25" placeholder="firstname" />
<span id="lname_feedback"></span></br></br>
<input type="submit" id="reg" value="sign up">
</form>

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/reg.js"></script>
</body>

</html>

jquery

function validate(fname, lname){
$.post('php/registration.php', {fname: fname, lname: lname}, function(data){

        $('#fname_feedback').text(data.fname);
        $('#lname_feedback').text(data.lname);
;
    },'json');
}

$('#fname').focusin(function(){ 
  if($('#fname').val() ==='') {
$('#fname_feedback').text('requried field');
} else {

validate($('#fname').val());

}
}).blur(function() { 

$('#fname_feedback').text('');

validate($('#fname').val());

}).keyup(function(){

validate($('#fname').val());

});

$('#lname').focusin(function(){ 
  if($('#lname').val() ==='') {
$('#lname_feedback').text('requried field');
} else {

validate($('#lname').val());

}
}).blur(function() { 

$('#lname_feedback').text('');

validate($('#lname').val());

}).keyup(function(){

validate($('#lname').val());

});

php

<?php

require '../init.php';
$fname_error= '';
$lname_error='';

if(isset($_POST['fname']))
{
    $fname = $_POST['fname'];

     //updated if statement
     if (strlen($fname) < 5)
    {
        $fname_error = 'example error message';
    } else {

         $fname_error = 'example';
    } 
}

if(isset($_POST['lname']))
{
    $lname = $_POST['lname'];

     //updated if statement
     if (strlen($lname) < 5)
    {
        $lname_error = 'example error message';
    } else {

         $lname_error = 'example';
    } 
}


$return_data=array('fname'=> $fname_error, 'lname'=>$lname_error);

header('Content-Type: application/json');
echo json_encode($return_data);
exit();
?>

最佳答案

你需要使用jquery的parseJSON函数来使用返回数据,所以在validate函数中的行将是这样的

var obj = jQuery.parseJSON(data);
$('#fname_feedback').text(obj.fname);

我 Controller 需要这样添加

<?php

require '../init.php';
$fname_error= '';

if(isset($_POST['fname']))
{
    $fname = $_POST['fname'];

     //updated if statement
     if (strlen($fname) < 5)
    {
        $fname_error = 'example error message';
    }
}

$return_data=array('fname'=> $fname_error);

header('Content-Type: application/json');
echo json_encode($return_data);
exit();
?>

关于javascript - json数组值没有传回jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630608/

相关文章:

JavaScript 速度 : Scope or Variable

javascript - 制作特殊格式的js代码

javascript - 使用 jquery 更改列表的背景颜色

javascript - 如何将第一个元素与精确的内容匹配?

php - required_without 不使用多个字段

jquery - 使用 Jquery 切换 HTML 和 CSS

javascript - 为什么没有添加准备好的div?

javascript - 将一些 javascript 变量添加到输入的 VALUE 属性中

php - 向用户发送电子邮件并转发以进行确认

java - 是否有任何表格可以从 MAC 地址识别设备品牌?