未加星标

Why does AJAX not issue the correct POST data?

字体大小 | |
[前端(javascript) 所属分类 前端(javascript) | 发布者 店小二03 | 时间 2018 | 作者 红领巾 ] 0人收藏点击收藏

As the person types into the input form, I want it to send POST data to thephp server and check if their username was not already taken.

The input has a name of username_signup , but for some reason the browser [both in chrome and firefox] is sending an input name of username (I did use username initially when I was coding but I switched it to username_signup and saved everything). It's really annoying as I have no idea what's causing it to send a POST input name of username rather than the correct username_signup .

My javascript:

$('body').on('keyup', '#username_signup', function(event) { /* * Set string variable */ var string = $('#username_signup').val(); /* * Set validations */ $('input').alphanum(); $('#username_signup').alphanum({ allowSpace: false, maxLength: 32 }); /* * Set AJAX variable. */ var request = $.ajax({ type: 'POST', url: 'login/ajax_check_username_availability', data: {username: string}, dataType: 'json' }); /* * When ajax successfully completed */ request.done(function(data) { if (data.status === true) { $('#signup_presubmit').prop('disabled', false); $('#username_check_fail').hide(); $('#username_check_fail').empty(); $('#username_check_success').show(); $('#username_check_success').html(data.username + ' is not taken!'); } else if (data.status === false) { $('#signup_presubmit').prop('disabled', true); $('#username_check_success').hide(); $('#username_check_success').empty(); $('#username_check_fail').show(); $('#username_check_fail').html(data.username + ' has already been taken!'); } else if (data.status === 'nostring') { $('#signup_presubmit').prop('disabled', true); $('#username_check_success').hide(); $('#username_check_success').empty(); $('#username_check_fail').show(); $('#username_check_fail').html('Username needs to be at least 2 character long!'); } }); /* * When ajax fails */ request.fail(function(data) { alert('Error! AJAX did not complete successfully'); }); });

My view:

<form action="<?php echo base_url(); ?>login/signup" method="post" role="form" accept-charset="utf-8" class="form-horizontal"> <!-- Username --> <div class="form-group"> <input value="<?php echo set_value('username_signup'); ?>" type="text" class="form-control" id="username_signup" name="username_signup" placeholder="username"> <p id="username_check_success" style="color: green; font-size: .7em; margin-top: 1em; margin-bottom: 0em"></p> <p id="username_check_fail" style="color: red; font-size: .7em; margin-top: 1em; margin-bottom: 0em"></p> </div> <button type="submit" class="btn btn-primary">sign up (for real this time)</button> </form>

My controller:

function ajax_check_username_availability() { $data['status'] = true; $data['username'] = strtolower($this->input->post('username_signup')); if (strlen($data['username']) < 2) $data['status'] = 'nostring'; else { $query = $this->db->get_where('users', array('username' => $data['username'])); if ($query->num_rows() > 0) $data['status'] = false; } echo json_encode($data); } So in the end, the browser sends a $_POST['username'] instead of (logical) $_POST['username_signup']

Any idea what's causing this annoyance? (I'm using Codeigniter framwork)

var request = $.ajax({ type: 'POST', url: 'login/ajax_check_username_availability', data: {username: string}, dataType: 'json' });

Because you are sending request data username string instead of username_signup - change data to:

data: {username_signup: string},

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

分页:12
转载请注明
本文标题:Why does AJAX not issue the correct POST data&amp;quest;
本站链接:https://www.codesec.net/view/611863.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(11)