首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ajax POST使用引导验证器转GET

Ajax POST使用引导验证器转GET
EN

Stack Overflow用户
提问于 2018-05-08 15:02:03
回答 1查看 42关注 0票数 0

我对引导验证器有问题。我有一个包含近40个字段的表单,我不使用本地HTML / PHP方式。我只是使用Submit botton来调用ajax并持久化数据,但是当我这样做时,POST就会转到GET,而我的请求-URI太长了,请求的URL长度超过了这个服务器的容量限制。我读了所有以前的案例,但没有一个对我有用。唯一起作用的,而且文章没有改变,就是拿走了引导验证器,但是有了它,我就无法控制前端的字段验证了。显然,AJAX中的调用可以工作,甚至我也可以调试PHP (save.php),但是响应是一个没有意义的GET调用。这是我的代码,几个星期来我一直试图解决它,但没有成功。

JS职能:

代码语言:javascript
运行
复制
$('#modalcust').validator().on('submit', function(e) {
  if (e.isDefaultPrevented()) {
    swal("Error, error"); // This is just an example.
  } else {
    value = $("#field").val(); // Here I have nearly 40 different vars (field values).
    $.ajax({
      url: "db/save.php",
      type: "POST",
      data: value,
      success: function(data, textStatus, jqXHR) {
        $('#modalcust').modal('toggle');
      },
      error: function(jqXHR, textStatus, errorThrown) {
        swal("Error!", textStatus, "error");
      }
    });
  }
});

HTML表单:

代码语言:javascript
运行
复制
<form  data-toggle="validator" role="form">
....
<button type="submit" class="btn btn-primary" id="btnsave"><i class="fa fa-save"></i> Save</button>
</form>

PHP:

代码语言:javascript
运行
复制
<?php
include "conect.php";

$crud=$_POST['crudmethod'];
$protocolo = time() . rand(10*45, 100*98);
if($crud=='E'){
    $protocol = $_POST['protocol'];
}

$rawData = $_POST['photosrc'];
if ($rawData) {
    $fotoFileName = 'uploads/'.$protocol.'.jpg';
    $fotosave = __DIR__ .'/../'.$fotoFileName;
    file_put_contents($fotosave, file_get_contents("data://".$rawData));
}

the 40 vars from POST

if($crud=='N'){
    mysqli_query($conn, "insert into people( 'vars' ) values('vars')");

    if(mysqli_error($conn)){
        $result['error']=mysqli_error($conn);
        $result['result']=0;
    }else{
        $result['error']='';
        $result['result']=1;
        $result['id']=mysqli_insert_id($conn);
    }
}else if($crud == 'E'){
    mysqli_query($conn, "update people set 'vars = vars' where id = $id");
    if(mysqli_error($conn)){
        $result['error']=mysqli_error($conn);
        $result['result']=0;
    }else{
        $result['error']='';
        $result['result']=1;
    }
}else{

    $result['error']='Invalid';
    $result['result']=0;
}
$result['crud']=$crud;

$result['crud']=$crud;
echo json_encode($result);
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-08 15:12:12

应将表单的HTML更改为:

代码语言:javascript
运行
复制
<form id="modalcust" data-toggle="validator" role="form">

应将JS代码更改为:

代码语言:javascript
运行
复制
$('#modalcust').validator();
$('#modalcust').on('submit', function(e) {
    e.preventDefault();
    value = $("#field").val(); // Here I have nearly 40 different vars (field values).
    $.ajax({
      url: "db/save.php",
      type: "POST",
      data: value,
      success: function(data, textStatus, jqXHR) {
        $('#modalcust').modal('toggle');
      },
      error: function(jqXHR, textStatus, errorThrown) {
        swal("Error!", textStatus, "error");
      }
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50236720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档