Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我在从html表单向数据库输入数据时总是得到“未定义”_Html_Sql_Node.js_Ejs - Fatal编程技术网

为什么我在从html表单向数据库输入数据时总是得到“未定义”

为什么我在从html表单向数据库输入数据时总是得到“未定义”,html,sql,node.js,ejs,Html,Sql,Node.js,Ejs,需要有关mysql语句中错误的帮助。我正在尝试建立一个网站,将添加,编辑和删除数据库中的数据。当我从网站输入数据时,sql语句显示“undefined”,其中包含应该更改的数据 我甚至不知道去哪里找。我已经检查了所有的sql语句,看看是否存在问题 {"code":"ER_TRUNCATED_WRONG_VALUE_FOR_FIELD","errno":1366,"sqlMessage":"Incorrect integer value: 'undefined' for column 'colle

需要有关mysql语句中错误的帮助。我正在尝试建立一个网站,将添加,编辑和删除数据库中的数据。当我从网站输入数据时,sql语句显示“undefined”,其中包含应该更改的数据

我甚至不知道去哪里找。我已经检查了所有的sql语句,看看是否存在问题

{"code":"ER_TRUNCATED_WRONG_VALUE_FOR_FIELD","errno":1366,"sqlMessage":"Incorrect integer value: 'undefined' for column 'collegeID' at row 1","sqlState":"HY000","index":0,"sql":"Update College SET collegeName = 'undefined', CoAbbreviation = 'undefined', collegeID = 'undefined'"}
这是我编辑表格时的全部错误消息

这是编辑学院的代码

editCollege:req,res=>{ 让collegeID=req.params.id; 让collegeName=req.body.collegeName; 设CoAbbreviation=req.body.CoAbbreviation; //今晚晚些时候重写查询 console.logcollegeID; //更新学院集合collegeName='collegeName', //CoAbbreviation=‘CoAbbreviation’ //其中CollegeID='CollegeID'; 让editCollegeQuery=更新学院集合collegeName=+'+collegeName+'+','+CoabRevision=+'+CoabRevision++','+collegeID=+'+collegeID+'; console.logeditCollegeQuery; db.queryeditCollegeQuery,错误,结果=>{ 伊弗{ 返回res.status500.senderr; } res.重定向“/”; }; }, deleteCollege:req,res=>{ 让collegeID=req.params.id; 让deleteCollegeQuery='DELETE FROM College,其中collegeID='+collegeID+''; console.logcollegeID; db.querydeleteCollegeQuery,错误,结果=>{ 如果出错{ 返回res.status500.senderr; } res.重定向“/”; }; } }; 以下是应用程序的路径

//routes for the app 
app.get('/', getHomePage);
app.get('/add', addCollegePage);
app.get('/edit/:id', editCollegePage);
app.get('/delete/:id', deleteCollege);
app.post('/add', addCollege);
app.post('/edit/:id', editCollege);
这是中间件

app.set('port', process.env.port || port); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'ejs'); // configture template engine 
app.use(bodyParser.urlencoded({ extended: false}));
app.use(bodyParser.json()); //parse data from client
编辑学院的前端代码

<div class="container">
<% if (message) { %>
    <p class="text-center text-danger"><%= message %></p>
<% } %>

<% if (College) { %>
    <form class="edit-college-form" action="" method="post"                     enctype="multipart/form-data">
        <div class="form-row">
            <div class="form-group col-md-4">
                <label for="collegeName">College Name</label>
                <input type="text" class="form-control"   name="collegeName" id="collegeName" value="<%= College.collegeName%>" required>
            </div>
            <div class="form-group col-md-4">
                <label for="CoAbbreviation"> College Abbreviation </label>
                <input type="text" class="form-control" name="CoAbbreviation" id="CoAbbreviation" value="<%= College.CoAbbreviation %>" required>
            </div>
        </div>
        </div>
        <button type="submit" class="btn btn-success float-right">Update College</button>
    </form>
<% } else { %>
    <p class="text-center">College Not Found. Go <a                                     href="/add">here</a> to add College.</p>
<% } %>
</div>
</div>
</body>
 </html>

您必须在代码中进行一些更正。首先是它的

let collegeID = req.params.id;//NOT req.param.id
第二,你做了什么结果

console.log(req.body);
如果它是一个对象,那么您的collegeName属性不是它们的属性。如果是数组,则应参考数组的索引

编辑: 我读了下面的评论。如果您在控制台记录req.body时得到一个未定义的文件,则表示数据尚未从html表单传递。是否在表单中的字段中定义了name属性?? 请在问题中分享您的HTML代码

编辑 请在HTML代码中添加一些表单中的路由操作属性。您的表单数据不会发送到任何地方,因为它没有应该发送的路径。请添加操作

<form class="edit-college-form" action="/edit" method="post"                     enctype="multipart/form-data">

从web for/web页传递的值很可能未正确填充客户端。检查正在返回sql语句中使用的值的客户端代码。同时使用模板文本,例如:let deleteCollegeQuery=`DELETE FROM College WHERE collegeID=${collegeID}`@安库杜比,这不会让情况好转。假设OP的DB库支持,则OP应该使用prepared语句语法it@Phil我发布了路由,发布了你的前端代码,你是如何通过请求主体的??当我执行console.logreq.body[0]时,它将显示未定义,我更新了参数id谢谢你的帮助!我看到了你的html代码。您的操作属性为空。你在哪里发布这些数据?你能解释一下你的意思吗?对不起,我对使用html和javascript还比较陌生。这条路怎么走?它会去吗?它会去“editCollege”去吗?此外,html中已经有了一个。路由将带您到中间软件,在那里您有一个调用req.body的函数。我所说的路由是指url。在你的情况下,我猜是/编辑。所以,应该是这样