使用jQuery AJAX发送ID数据

3

我需要获取我的ID并编辑表格的值,但我无法从数据库中获取ID,实际上我正在尝试通过这种方式发送它...

$(document).on('submit', '#form_company.edit', function(e){
e.preventDefault();
// Validate form
if (form_company.valid() == true){
  // Send company information to database
  hide_ipad_keyboard();
  hide_lightbox();
  show_loading_message();
  var id        = $('#form_company').attr('data-id');
  var form_data = $('#form_company').serialize();
  var request   = 

 $.ajax({
    url:          'data.php?job=edit_company&id=' + id,
    cache:        false,
    data:         form_data,
    dataType:     'json',
    contentType:  'application/json; charset=utf-8',
    type:         'get'
  });

`

但是它正在通过URL传递..我想要通过"data:"发送它..应该如何做..

尝试使用POST方法,并使用以下数据:{id: id}。 - Dave
请记住,ajax调用对外界是可见的。id值是否公开是可以接受的?使用 'data.php',别人可能会清空您的数据库吗? - KIKO Software
4个回答

1
您正在使用type作为get,这就是为什么它通过URL传递数据的原因。如果不想通过URL传递数据,应该使用POST
$.ajax({
  url:          'data.php?job=get_company',
  type:          'POST',
  cache:        false,
  data:         {id: id} ,
  dataType:     'json',
  contentType:  'application/json; charset=utf-8',

});

如果我这样发送它会怎么样... {'job':'get_company','id': id},..它能工作吗.. - Mohanish

1
您可以像下面这样在POST参数中同时发布两个数据:
$.ajax({
  url:          'data.php',
  type:          'POST',
  cache:        false,
  data:         {'form_data':form_data,'job':'get_company','id': id} ,
  dataType:     'json',
  contentType:  'application/json; charset=utf-8',

});

现在在PHP中(data.php):-
<?php
  echo"<pre/>";print_r($_POST);
?>

注意:根据此打印数据,您可以相应地完成自己的工作。谢谢。

使用数据:{'job':'get_company','id': id}后,它可以工作,但只获取ID,而不进行更新(我正在使用它来编辑表)。 - Mohanish

1
检查我的更改,希望这对你有所帮助。
$(document).on('submit', '#form_company.edit', function(e){
e.preventDefault();
// Validate form
if (form_company.valid() == true){
  // Send company information to database
  hide_ipad_keyboard();
  hide_lightbox();
  show_loading_message();

  var form_data = $('#form_company').serialize();
  form_data.append('id',$('#form_company').attr('data-id'));
  form_data.append('job',"edit_company");

  var request= $.ajax({
    url:          'data.php',
    cache:        false,
    data:         form_data,
    dataType:     'json',
    contentType:  'application/json; charset=utf-8',
    type:         'post'
  });

我想通过数据发送它,不通过URL。我只会调用"data.php",并且所有其他内容都在"data:"字段中。 - Mohanish

1
尝试使用以下内容进行POST请求:
$.ajax({
    url:          'data.php',
    cache:        false,
    data:         {form_data:form_data,job:'edit_company',id:id},
    dataType:     'json',
    contentType:  'application/json; charset=utf-8',
    type:         'POST',
    success:       function(data){
    }
});

我遇到了错误...数据:{form_data:form_data,job:'edit_company',id:id},不起作用... - Mohanish
1
它能工作,只需要我用这个小改变('')来替换它。数据:{'form_data':form_data,job:'edit_company',id:id}。感谢您的帮助。 - Mohanish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接