Вызов Dialog.Modal с ошибкой - PullRequest
       13

Вызов Dialog.Modal с ошибкой

0 голосов
/ 26 февраля 2012

Я думаю, что я что-то здесь упускаю.

в скрипте:

$('#dialog:ui-dialog').dialog('destroy');
$('#dialog-modal').dialog({ width:150, height:150, resizable:false, draggable:false, autoOpen:true, modal:true });

Я использую AJAX для вызова данных, когда при извлечении обнаруживает ошибку, я хочу, чтобы она всплылавверх dialog.modal, но он просто не будет этого делать.Я думаю, что здесь что-то упущено.

в PHP:

case ($amt > $total_storage):
    echo "<div id='dialog-modal' class='ui-dialog-content ui-widget-content' title='Error!'><p>Not enough Storage!</p></div>";  (this one don't work)
    echo "Test Error";  (this one works)
    break;

Я тестировал с помощью echo, и он отображает «Ошибка», но не диалоговое окно.Я просто хочу, чтобы autoOpen при обнаружении ошибки.

Новая работоспособная версия: PHP:

case ($amt > $total_storage):
    echo ":err:<p>Not enough Storage!</p></div>";
    break;

JS:

function CitySell(a){
    $.ajax({
        beforeSend: function(){ $(".Bags").attr("disabled", "disabled"); },
        url: "DataPull.php?get=CitySell&SSIDD="+$('.SDI_'+a).val()+"&SSAmD="+$('.STS_'+a).val(),
        success: function(data){
            $('#Listing').html(parseScript(data));
            if(data.substr(0,5) === ':err:'){
                $('<div id="dialog-modal" class="ui-dialog-content ui-widget-content" title="Error!">').html(data.substr(5)).dialog({width:250, height:150, resizable:false, draggable:false, autoOpen:true, modal:true});
                $('.Bags').removeAttr("disabled");
            } else {
                Listing();
                CommonUpdates();
            }
        }
    })
}

Ответы [ 2 ]

0 голосов
/ 26 февраля 2012

Вы пытаетесь вернуть html для диалогового окна, которое, вероятно, вызывает проблемы, так как его не существует, когда вы пытаетесь инициировать диалоговое окно.

Если вы возвращаете свои данные как json, это делает ихнамного проще

echo json_encode( array('status'=>'error', 'message'=>'Your error message') );

Тогда в случае успеха обратный вызов ajax:

$.get( url, function(data){
    if( data.status=='error'){
      $('<div id="dialog-modal">').html( data.message).dialog(  // dialog options)
    }
},'json');
0 голосов
/ 26 февраля 2012

Оберните свой js-код в функцию

function open_dialog(error_text)
{
    $('#dialog:ui-dialog').dialog('destroy');
    $('#dialog-modal')
        .html(error_text)
        .dialog({ width:150, height:150, resizable:false, draggable:false, autoOpen:true, modal:true });
}

и выполните вызов функции в методе onSuccess

$.get(url, function(result){ open_dialog(data); })

Хотя вам придется различатьмежду случаями, когда ответ указывает на ошибку, и когда это не так.Вы можете добавить несколько символов в ответ, чтобы увидеть, является ли это ошибкой:

case ($amt > $total_storage):
echo ":err:<p>Not enough Storage!</p></div>";  
break;

$.get(url, function(result){ if(data.substr(0,5) === ':err:') open_dialog(data); else alert(data); })

...