【问题标题】:I have an error when sending data by POST with javascript使用 javascript 通过 POST 发送数据时出现错误
【发布时间】:2019-01-26 17:35:00
【问题描述】:

我正在尝试使用 Javascript 通过 post 发送数据,但我对此并不陌生。 我留下我的代码,我想知道我做错了什么。

首先我有一个文件,只要输入代码和日期,我就可以在我的 mysql 数据库中调用查询。

public function listusuerdate($date,$name) {
    try {
        $sql= "select * from markers where name_user = :p_user AND date_user = :p_dat";

        $statement = $this->dblink->prepare($sql);
        $statement->bindParam(":p_user", $name);
        $statement->bindParam(":p_dat", $date);
        $statement->execute();
        $result= $statement->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    } catch (Exception $exc) {
        throw $exc;
    }
}

我有另一个文件,他通过以下方式通过 POST 传递变量:

<?php
    require_once '../negocio/ShowMap.clase.php';

    $date= $_POST["p_dat"];
    $name= $_POST["p_user"];

    $objUser = new ShowMap();
    try {
        $result = $objUser ->listusuerdate($date,$name);
    } catch (Exception $exc) {
        header("HTTP/1.1 500");
        echo $exc->getMessage();
    }
?>

当我使用 Postman 时效果很好

我的问题来了,我创建了一个表单来发送用户的日期和名称,如下所示:

<form>
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
            <h4 class="modal-title" id="myModalLabel">Título de la ventana</h4>
        </div>
        <div class="modal-body">
            <div class="row">
                <div class="col-xs-2">
                    <p>Code<input type="text" name="txtcode" id="txtcode" class="form-control input-sm text-center text-bold" placeholder="" readonly=""></p>
                </div>
                <div class="col-xs-4">
                    <p>Name <font color = "red">*</font>
                    <input type="text" name="txtname" id="txtname" class="form-control input-sm" placeholder="" required=""><p>
                </div>  
                <div class="col-xs-3">
                    <p>Date
                    <input type="date" class="form-control input-sm" id="txtdate" name="txtdate" /></p>
                </div> 
                <div class="modal-footer">

                    <a class="btn btn-primary btn-lg" value='Click' href='javascript:;' onclick="toshow();" role="button"></a>
                </div>
            </div>
        </div>
    </div>
</form>

最后,我尝试通过以下方式通过 javascript 发送用户的日期和名称:

function toshow(){
    var name = document.getElementById("txtname").value;
    var date = document.getElementById("txtdate").value;

    $.post(
        "../controlador/ruta.controlador.php",
        {
            p_user : name,
            p_dat : date
        }
    ).done(function(){                
        alert( "exit" );
    }).fail(function(error){
        alert(error.responseText);
    });
};

我不能让它工作

【问题讨论】:

  • 当您拨打电话时,javascript 是否会给您任何错误?
  • 没有错误
  • 当你点击按钮时alert()窗口没有弹出吗?
  • 警报他们工作得很好
  • 哪个是为你执行的?

标签: javascript forms post


【解决方案1】:

你需要写一个js函数正确检查它的语法

function toshow(){
var name = document.getElementById("txtname").value;
var date = document.getElementById("txtdate").value;

$.ajax(
    method:'POST',                          // here you can spasify post or get
    url:"../controlador/ruta.controlador.php",
    data : {
        p_user : name,
        p_dat : date
    },
).done(function(){                
    alert( "exit" );
}).fail(function(error){
    alert(error.responseText);
});

};

【讨论】:

  • 他正在使用$.post 无需指定方法
  • @AlexanderFreyr 抱歉,我看到后修复了它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多