dougongyou7364 2016-05-13 02:06
浏览 67
已采纳

PHP无法从AJAX传递POST值

I'm following what this post mentioned to upload a file. A little difference is I added one more text input field on the form. The image file is uploaded to server successfully but it seems the value in input field doesn't get passed to PHP for database update. The database function is fired and database record added but missing the value from the form.

Can anyone point me out what I missed? Thanks.

$.validate({
  form: '#frmSlide',
  modules: 'file, html5',
  validateOnBlur: false,
  errorMessagePosition: 'top', // Instead of 'element' which is default
  scrollToTopOnError: false, // Set this property to true if you have a long form
  onSuccess: function($form) {
    var file_data = $('#a_imgfile').prop('files')[0];
    var form_data = new FormData();
    form_data.append('file', file_data);
    $.ajax({
      url: 'slide_upd.php', // point to server-side PHP script
      dataType: 'text', // what to expect back from the PHP script, if anything
      cache: false,
      contentType: false,
      processData: false,
      data: form_data,
      type: 'post',
      success: function(data) {
        alert(data);
      }
    });
  }
});
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" class="form-horizontal" id="frmSlide">
  <div class="form-group">
    <label class="col-sm-4 control-label" for="imgfile">Image file</label>
    <div class="col-sm-8">
      <input type="file" id="a_imgfile" data-validation="required mime size" data-validation-allowing="jpg, png, gif" data-validation-ratio="1:1" data-validation-max-size="1M" data-validation-error-msg="An image file is mandatory." />
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-8 col-md-offset-4" id="image-holder">
    </div>
  </div>
  <div class="form-group">
    <label class="col-sm-4 control-label" for="seq">Sequence</label>
    <div class="col-sm-8">
      <input class="form-control server" name="a_seq" id="a_seq" type="number" min="1" max="4" value="" placeholder="Enter display sequence of this slide" data-validation-error-msg="Only 1 to 4 is allowed." />
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-4 col-sm-8">
      <button name="btnUpd" id="btnUpd" type="submit" class="clsUpd btn btn-primary"><i class="fa fa-floppy-o"></i>&nbsp;Update</button>
    </div>
  </div>

</form>

<?php
    $image_name = $_FILES['file']['name'];
    $image_size = $_FILES['file']['size'];
    $image_temp = $_FILES['file']['tmp_name'];
    
    move_uploaded_file($image_temp, 'img/'.$image_name);

    $seq = $_POST['a_seq'];
    addSlide($seq);
?>

function addSlide($seq) {
    $seq = (int)$seq;
    mysql_query("INSERT INTO slide (seq, lastchgat) 
        VALUES ('$seq', now())")  or die(mysql_error());
}

</div>
  • 写回答

2条回答 默认 最新

  • doufan1899 2016-05-13 10:53
    关注
    1. The a_seq is not appended to the form_data.
    2. add var a_seq = $('#a_seq').val();
    3. form_data.append('a_seq', a_seq);
    4. Should be good to go
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件