我有一个基于JQuery UI网站上的演示的JQuery UI模式表单对话框。这样做的目的是允许用户发布到社交网站。用户单击站点上的按钮,出现带有文本框的模态表单对话框,他们键入消息单击帖子,并通过调用PHP文件将结果写入MySQL数据库。
我遇到的问题是这在第一次尝试时从不起作用,但是第二次和所有下班后都没有问题。所以我真的需要帮助来解决这个问题。
这是我的模态形式:
<div id="dialog-form" title="Post Message">
<p class="validateTips">Enter your message here.</p>
<form>
<textarea name="message" id="message" cols="50" rows="10" class="text ui-widget-content ui-corner-all"></textarea>
</form>
这是JQuery(在相同的php文件中,基于JQuery UI演示):
$(document).ready(function() {
//$(function() {
// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
$( "#dialog:ui-dialog" ).dialog( "destroy" );
var message = $( "#message" ),
allFields = $( [] ).add( message ),
tips = $( ".validateTips" );
function updateTips( t ) {
tips
.text( t )
.addClass( "ui-state-highlight" );
setTimeout(function() {
tips.removeClass( "ui-state-highlight", 1500 );
}, 500 );
}
function checkLength( o, n, min, max ) {
if ( o.val().length > max || o.val().length < min ) {
o.addClass( "ui-state-error" );
updateTips( "Length of " + n + " must be between " +
min + " and " + max + "." );
return false;
} else {
return true;
}
}
$( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Post It": function() {
var bValid = true;
allFields.removeClass( "ui-state-error" );
bValid = bValid && checkLength( message, "message", 1, 144 );
if ( bValid ) {
$.post("_scripts/db_postmsg.php", message, function(response){
alert(response);
})
$( this ).dialog( "close" );
location.reload();
}
},
Cancel: function() {
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
}
});
$( "#postmsg" )
.button()
.click(function() {
$( "#dialog-form" ).dialog( "open" );
});
});
以下是名为的
的PHP文件(db_postmsg.php) if(!isset($_SESSION)) {session_start();}
try {
if (isset($_POST['message']) && isset($_SESSION['useid'])) {
require_once('library.php');
$msg = htmlentities($_POST['message']);
$postdata = array(
'net_userid' => $_SESSION['useid'],
'net_post' => $msg);
$dbWrite->insert('messageposts', $postdata);
} else {
echo "No message set";
}
}
catch (exception $e) {
echo $e->getMessage();
}
使用Zend Framework完成对数据库的写入,该库在library.php。
中设置我知道代码的工作方式从第二次尝试开始就可以正常运行。我只是需要帮助才能理解为什么它在第一次尝试时不起作用。
感谢。