在我的网站上,我正在使用jQuery ui框架创建一个对话框。
对话框请求插入主题,查看应插入mySQL的内容,名称和城市。但是,当我想将变量传递给PHP时,变量中没有值。
以下是处理对话框的整个js函数:
$( "#dialog-form" ).dialog({
autoOpen: false,
height: 600,
width: 550,
modal: true,
buttons: {
"Skriv Review": function() {
var bValid = true;
allFields.removeClass( "ui-state-error" );
bValid = bValid && checkLength( topic, "topic", 3, 16 );
bValid = bValid && checkLength( review, "review", 1, 10000 );
bValid = bValid && checkLength( name, "name", 1, 25 );
bValid = bValid && checkLength( city, "city", 1, 16 );
bValid = bValid && checkRegexp( name, /^[a-z]([0-9a-z_])+$/i, "Bruger skal være a-z, 0-9, underscores, begynde med et bogstav." );
if ( bValid ) {
$( "#users tbody" ).append( "<tr>" +
"<td>" + topic.val() + "</td>" +
"<td>" + review.val() + "</td>" +
"<td>" + name.val() + "</td>" +
"<td>" + city.val() + "</td>" +
"</tr>" );
var data = {
topic: topic.val(),
review: review.val(),
name: name.val(),
city: city.val()
}
$.ajax({
type : 'POST',
url : 'bruger-reviews.php',
dataType : 'json',
data: data,
success : function(data){
//success
}
});
$( this ).dialog( "close" );
}
},
Cancel: function() {
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
}
});
以下是我在PHP中接收数据的方式:
$ins_topic = $_POST['topic'];
$ins_review = $_POST['review'];
$ins_name = $_POST['name'];
$ins_city = $_POST['city'];
我没有问题,就像在jQuery UI的演示中一样显示这些值。
当我$ _GET或$ _POST变量时没有数据。为什么我不能将值传递给PHP?我可以尝试另一种方法吗?
感谢。
答案 0 :(得分:1)
在关闭对话框之前,您应该将值带到一个或多个对象。
此代码删除从DOM中删除对话框; $(this).dialog(“close”);
使用此;
if ( bValid ) {
$( "#users tbody" ).append( "<tr>" +
"<td>" + topic.val() + "</td>" +
"<td>" + review.val() + "</td>" +
"<td>" + name.val() + "</td>" +
"<td>" + city.val() + "</td>" +
"</tr>" );
var data = {
topic: topic.val(),
review: review.val(),
name: name.val(),
city: city.val()
}
$( this ).dialog( "close" );
在ajax请求上使用此数据对象
$.ajax({
type : 'POST',
url : 'bruger-reviews.php',
dataType : 'json',
data: data,
success : function(data){
//success
}
});