Php 对话框未在JSON回调上触发
如果有人能解释为什么我的对话“对话错误”没有触发,我将不胜感激。在firebug中,响应显示正确,没有错误。但由于某些原因,dialog没有响应它。非常感谢 萤火虫反应Php 对话框未在JSON回调上触发,php,jquery,ajax,jquery-ui-dialog,Php,Jquery,Ajax,Jquery Ui Dialog,如果有人能解释为什么我的对话“对话错误”没有触发,我将不胜感激。在firebug中,响应显示正确,没有错误。但由于某些原因,dialog没有响应它。非常感谢 萤火虫反应 {"boxerror":"Error","box":"191"}{"boxerror":"Error","box":"192"} submitHandler: function () { if ($("#USRboxint").valid() === true) { var data = $("#USRb
{"boxerror":"Error","box":"191"}{"boxerror":"Error","box":"192"}
submitHandler: function ()
{
if ($("#USRboxint").valid() === true)
{
var data = $("#USRboxint").serialize();
$.ajax(
{
type: "POST",
url: "bintk.php",
data: data,
dataType: "json",
success: function (data)
{
if (data.boxerror == 'Error')
{
var messageOutput = '';
for (var i = 0; i < data.length; i++)
{
messageOutput += data[i].box + ' ';
}
var $dialogError = $('<div id="dialog-error"></div>').html('<br />Your New Intake of ' + messageOutput + ' was NOT SUBMITTED. You must enter a box number that is unique.<br />Thank you.');
$dialogError.dialog(
{
autoOpen: true,
modal: true,
title: 'New Intake Unsuccessfull',
width: 400,
height: 260,
draggable: false,
resizable: false,
buttons: {
Close: function ()
{
$(this).dialog("close");
}
}
});
}
else
{
var messageOutputs = '';
for (var i = 0; i < data.length; i++)
{
messageOutputs += data[i].box + ' ';
}
//console.log(messageOutputs);
//$("#USRaddbox").html("<div class='successMessage'>is a valid e-mail address. Thank you.</div>");
$("#USRboxint").get(0).reset();
var $dialogSuccess = $('<div id="dialog-success"></div>').html('<br />Your New Intake of ' + '<b><font color="green">' + messageOutputs + '</font></b>' + ' was successfully submitted.<br />Thank you.');
$dialogSuccess.dialog(
{
autoOpen: true,
modal: true,
title: 'New Intake successfull',
width: 400,
height: 200,
draggable: false,
resizable: false,
buttons: {
Close: function ()
{
$(this).dialog("close");
}
}
});
}
}
});
}
}
{“boxerror”:“Error”,“box”:“191”}{“boxerror”:“Error”,“box”:“192”}
submitHandler:函数()
{
if($(“#USRboxint”).valid()==true)
{
var data=$(“#USRboxint”).serialize();
$.ajax(
{
类型:“POST”,
url:“bintk.php”,
数据:数据,
数据类型:“json”,
成功:功能(数据)
{
如果(data.boxerror=='Error')
{
var messageOutput='';
对于(变量i=0;i 未提交新的'+messageOutput+'内容。您必须输入唯一的框号。
谢谢');
$dialogError.dialog(
{
自动打开:对,
莫代尔:是的,
标题:“新录取未成功”,
宽度:400,
身高:260,
可拖动:错误,
可调整大小:false,
按钮:{
关闭:函数()
{
$(此).dialog(“关闭”);
}
}
});
}
其他的
{
var messageOutputs='';
对于(变量i=0;i 您的'+''+messageOutputs+''新内容已成功提交。
谢谢。');
$dialogSuccess.dialog(
{
自动打开:对,
莫代尔:是的,
标题:“新录取成功”,
宽度:400,
身高:200,
可拖动:错误,
可调整大小:false,
按钮:{
关闭:函数()
{
$(此).dialog(“关闭”);
}
}
});
}
}
});
}
}
PHP代码
<?php
$boxerrortext = 'Error';
//$error = array();
$sname = mysql_real_escape_string(htmlspecialchars($_POST['box_add']));
$namearray = explode(',',$sname);
foreach ($namearray as $sname){
$sql = "SELECT * FROM temp WHERE item = '" . $sname . "'";
$result = runSQL($sql) or die(mysql_error());
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
//trigger_error('It exists.', E_USER_WARNING);
$error = array('boxerror'=>$boxerrortext, 'box'=>$sname);
$result = json_encode($error);
echo $result;
}
}
?>
看起来您试图创建的div从未添加到DOM中。
我会:
$(“html”)。追加(“”);
var$dialogSuccess=$(“#dialogSuccess”);
$dialogSuccess.html(“
您新加入的“+messageOutputs+”已成功提交。
谢谢。”);
然后继续您的代码。如果您添加到帖子中的json字符串是正确的,则它不是有效的json。应该如何将其写入Tobias。感谢您必须使用如下数组表示法:[{“boxerror”:“Error”,“box”:“191”},{“boxerror”:“Error”,“box”:“192”}]
$Error=array([{“boxerror”:“$boxerrortext”,“box”:“$sname”}]);托比亚斯,对吗。谢谢,上面说我“失踪了”;在声明之前。这一行是$dialogSuccess.html(“
谢谢,我的错。删除了该行之前的var。没有错误,但仍然没有触发。我不确定我的JSON是否正确。这是Tobias的早期评论。谢谢如果你复制/粘贴了它,它可能复制了一些奇怪的字符。否则,请仔细检查所有引号,确保在进出时正确对应text。从我所看到的,它看起来格式正确。是的,这是错误的json格式。您可能仍然能够解析它。var j=$.parseJSON(数据);然后改用j.boxerror并重新封装所有数据。使用j.xxxIt的xxx仍然没有触发John。可能是因为json吗?