从modal更新mysql记录时出现问题
我在使用PDO将信息从引导模式更新到mysql数据库时遇到问题 我尝试过一种基本的静态方法,但它似乎不起作用。我点击“编辑”按钮触发模式,该模式显示表格中的信息,但当我更改课程标题时,即使代码似乎正确,它也不会做任何事情 以下是模式的代码:从modal更新mysql记录时出现问题,mysql,twitter-bootstrap,pdo,Mysql,Twitter Bootstrap,Pdo,我在使用PDO将信息从引导模式更新到mysql数据库时遇到问题 我尝试过一种基本的静态方法,但它似乎不起作用。我点击“编辑”按钮触发模式,该模式显示表格中的信息,但当我更改课程标题时,即使代码似乎正确,它也不会做任何事情 以下是模式的代码: <div id="editModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="editModalLabel" aria-hidden="true"> <
<div id="editModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="editModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Update Record: </h4>
</div>
<div class="modal-body">
<p class="text-primary">Please make any changes and click 'update' to save or 'cancel' to return</p>
<form id="updateForm" action="ManageCourses_UpdateSubmit.php" method="post">
<div class="form-group">
<label for="course_code" class="control-label">Course Code:</label>
<input type="text" class="form-control" id="course_code" readonly="">
</div>
<div class="form-group">
<label for="course_title" class="control-label">Course Title:</label>
<input type="text" class="form-control" id="course_title">
</div>
</form>
</div>
<div class="modal-footer">
<button id="cancel" type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button id= "update" value="update" type="submit" class="btn btn-primary">Update</button>
</div>
</div>
</div>
php代码:
<?php
if(!isset( $_POST['course_title'], $_POST['course_code']))
{
echo = 'invalid data has been sent';
}
include "db_conx.php";
try
{
$db_conx = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);
$db_conx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE course_details SET course_title = :course_title,
WHERE course_code = :course_code";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':course_title', $_POST['course_title'], PDO::PARAM_STR);
$stmt->bindParam(':course_code', $_POST['course_code'], PDO::PARAM_INT);
$stmt->execute();
/*** success message ***/
echo = 'record updated';
}
catch(Exception $e)
{
/*** fail message incase something went wrong ***/
//$message = 'Unable to process your request. Please try again later';
echo = 'Unable to process your request. Please try again later';
}
}
?>
有什么建议我可以克服这个问题吗
提前谢谢你 表单元素没有名称属性,因此它们可能没有提交到服务器:
<input type="text" class="form-control" id="course_title">
应该是:
<input type="text" class="form-control" id="course_title" name="course_title">
所有表单元素都应采用相同的修复方法。感谢您的快速响应。我已经将name属性添加到两个输入表单中,但这并没有实现effect@user90210:调试它。它具体在哪里失败?正在发出HTTP请求吗?它有你期望的价值吗?服务器的响应是什么?PHP日志中是否有错误?数据库正在更新吗?当您调试PHP代码时,它的行为与您期望的有什么不同?不要把整个事情当作一个黑箱。您拥有代码,您可以调试它。失败的部分是当我单击“更新”按钮时,它应该更新mysql数据库中的相应值,但它什么也不做。检查日志后,表单中会显示正确的值,但不会向数据库发送任何内容。也没有错误,这就是为什么它非常混乱的原因。谢谢你的建议。@user90210:好吧,看看那个捕捉块,我想你不能肯定地说没有错误。忽略包含错误的$e值,$message赋值会被注释掉,如果它后来被使用的话,我不知道,然后尝试赋值给echo,这要么是语法错误,要么就是什么都不做。因此,这段代码很可能忽略了一个错误。您对php文件的看法是正确的。我已经纠正了,因为它是一个模板,所以遗漏了一些东西。但是,即使进行了这些更改,控制台也没有发现任何错误:/