尝试使用jQuery将信息发送到php文件,但不断收到服务器错误。我知道php文件没有错,因为我能够直接从表单向php文件发送信息,并且能够处理信息并执行查询。
我需要使用jQuery,因为我希望响应显示在当前页面上,而不是将用户指向php文件。
我之前已经设法用其他形式完成了这项工作,但我不确定为什么这次不能正常工作。
表单代码:
<div id="viewModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="viewModalLabel" 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">View Proposal: </h4>
</div>
<div class="modal-body">
<form id="viewForm">
<div class="form-group">
<label for="code" class="control-label">Proposal ID:</label>
<input type="text" class="form-control" id="proposal_id" name="proposal_id" readonly="">
</div>
<div class="form-group">
<label for="title" class="control-label">Proposal Title:</label>
<input type="text" class="form-control" id="proposal_title_id" name="proposal_title">
</div>
<div class="form-group">
<label for="title" class="control-label">Proposal Description:</label>
<input type="text" class="form-control" id="desc_id" name="description">
</div>
<div class="form-group">
<label for="title" class="control-label">Course:</label>
<input type="text" class="form-control" id="course_id" name="course_title">
</div>
<input type="hidden" name="user_token" value="<?php echo $_SESSION['user_token']; ?>"/>
<div class="modal-footer">
<div class="btn-toolbar">
<button type="Submit" class="btn btn-success" class="pull-left" onclick="AddFav();"><span class= "glyphicon glyphicon-heart"/> Add To Favourites</button>
<button type="button" class="btn btn-default" class="pull-right" data-dismiss="modal">Close</button>
<input type="Submit" class= "btn btn-primary" value="Apply" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
添加到收藏夹按钮具有jQuery功能的onclick功能。
这是jQuery:
function AddFav() {
var data = $('#viewForm').serialize();
$.post('Student_Favourites.php', data, function(response){
$("#viewForm").html(response);
}).fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
}
php:
<?php
session_start();
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);
// var_dump($_SESSION);
$username = $_SESSION['username'];
//$_SESSION['username'] = $username;
$sql = $db_conx->prepare("SELECT username, user_record_id FROM login_details
WHERE username = :username");
$sql->bindParam(':username', $username, PDO::PARAM_STR);
$sql->execute();
$user_record_id = $sql->fetchColumn(1);
// echo "Showing all proposals for : $username \n";
// print_r($user_record_id);
$proposal = $_POST['proposal_id'];
$insertRec = $db_conx->prepare("INSERT INTO student_saved (proposal_id, user_record_id) VALUES (:proposal, :user_record_id)");
$insertRec->bindParam(':user_record_id', $user_record_id, PDO::PARAM_STR);
$insertRec->bindParam(':proposal', $proposal, PDO::PARAM_STR);
$insertRec->execute();
$message = "<p class='text-success'> Proposal Added To Your Favourites <span class='glyphicon glyphicon-ok'/></p>";
}
catch(Exception $e)
{
/*** check if the email already exists ***/
if( $e->getCode() == 23000)
{
$message = 'This proposal has already been saved to your favourites';
}
else
{
$message = $e->getMessage();
/*** fail message incase something went wrong ***/
//$message = 'Unable to process your request. Please try again later';
//$message = $username ." ". $password ." ". $last_user_id;
}
}
}
die($message);
?>
任何想法我怎么能克服这个?请求失败:错误消息不是非常有用