我使用模态显示表单。我想验证表单并在单击提交按钮后显示可能的错误。我不想在验证后关闭我的模态,所以我决定使用Ajax。这是我的代码:
模态:
<div class="modal fade" id="form-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<form name="offer-form" id="offer-form" action="offers.php" method="post">
<label for="name-input">Name</label><br>
<?php
if (isset($_SESSION["name-error"])) {
echo "<p>".$_SESSION["name-error"]."</p>";
unset($_SESSION['name-error']);
}
?>
<input type="text" id="name-input" name="name"><br>
<input type="submit" id="submit-input" name="submit" value="Submit">
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
脚本:
<script type="text/javascript">
$(document).ready(function(){
$("#offer-form").submit(function(e){
e.preventDefault();
$.ajax({
type : 'POST',
data: $("#offer-form").serialize(),
url : 'validate.php',
success : function(data){
}
});
return false;
});
})
PHP:
<?php
session_start();
$_SESSION["name-error"] = "Error";
?>
问题是我必须刷新网站才能看到显示的错误。我该如何解决这个问题?
答案 0 :(得分:0)
将会话的值返回给你的ajax并使用jquery将错误追加到页面:
将以下内容添加到您的成功函数
success : function(data){
$('label[for="name-input"]').html('</br>'+data.message)
}
在你的php中
<?php
session_start();
header('Content-Type: application/json');
$_SESSION["name-error"] = "Error";
echo json_encode(["message"=>$_SESSION["name-error"]]);
?
答案 1 :(得分:0)
使用JQUERY显示错误...如果您希望PHP处理$ _SESSION,您需要重新加载页面(因为PHP在服务器端)。
在PHP文件中执行回显并捕获成功函数中的数据
@Override
public void bindView(View view, Context context, Cursor cursor) {
// Gets handles to individual view resources
final ViewHolder holder = (ViewHolder) view.getTag();
Contact contact = new ContactDatabase(context).getContact(cursor, "_id");
String body = cursor.getString(cursor.getColumnIndexOrThrow("follower"));
Log.d("Body", "" + body);
if (body == null) {
holder.rowlayout.setVisibility(View.GONE)
} else {
holder.rowlayout.setVisibility(View.VISIBLE);
holder.text1.setText(contact .getName());
}
}
答案 2 :(得分:0)
您的validation.php文件
session_start();
$_SESSION["name-error"] = "Error";
$error = array('error' => $_SESSION["name-error"]);
echo json_encode($error);
你的Html
<label for="name-input">Name</label><br>
<p class='sessionError'></p>
你的ajax成功功能
success : function(data){
$('.sessionError').text(data.error);
}