I'm trying to get data using jquery ajax, everything works good and I get what I want, but I can't display it because I get a Uncaught TypeError: Cannot read property 'display' of undefined.
Here the code. Any idea?
/*
* Get the data from the ajax call and display a dialog
*/
function CreateDialog(email) {
// get the data from the ajax call
var promise = AjaxSubscribe(email)
// if data are available, show the dialog
promise.success(function (data) {
// data is a simple html code
var dialog = $(data);
// can't setup the dialog! Error
// Uncaught TypeError: Cannot read property 'display' of undefined
dialog.dialog({
autoOpen: false,
modal: true,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
dialog.dialog( "open" );
return false;
});
}
This is the output of data
console.log(data)
<p>Data debugging</p>
<ul>
<li>Ip address: 193.125.139.18</li>
<li>Country Name: Italy</li>
<li>Country Code: IT</li>
<li>Email: [email protected]</li>
</ul>
Try wrapping your data HTML inside a container, either on the backend or the frontend:
var dialog = $('<div/>').html(data);
I'm not sure .dialog()
will work on multiple document fragments (you have a <p>
and a <ul>
inline). $(data)
would be an array with 2 elements which is not what .dialog()
expects.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With