gpt4 book ai didi

php - 在 JQuery/Javascript 中使用值的问题

转载 作者:可可西里 更新时间:2023-11-01 13:26:35 25 4
gpt4 key购买 nike

我有一个来自 Mysql 的 PHP 填充表,我正在使用 JQuery 来监听是否单击了按钮,如果单击它,它将获取有关他们单击的关联名称的注释。一切都很好,只有一个问题。有时,当您单击它并打开对话框(JQuery UI)窗口时,文本区域中什么也没有。如果您要再次单击它,它将重新弹出。所以有时看起来,也许值(value)被抛弃了?我不确定,可以用手。

代码:

$(document).ready(function () {
$(".NotesAccessor").click(function () {
notes_name = $(this).parent().parent().find(".user_table");
run();
});

});
function run(){
var url = '/pcg/popups/grabnotes.php';

showUrlInDialog(url);
sendUserfNotes();


}
function showUrlInDialog(url)
{
var tag = $("#dialog-container");
$.ajax({
url: url,
success: function(data) {
tag.html(data).dialog
({
width: '100%',
modal: true
}).dialog('open');
}
});
}
function sendUserfNotes()
{

$.ajax({
type: "POST",
dataType: "json",
url: '/pcg/popups/getNotes.php',
data:
{
'nameNotes': notes_name.text()

},
success: function(response) {
$('#notes_msg').text(response.the_notes)
}
});

}
function getNewnotes(){
new_notes = $('#notes_msg').val();
update(new_notes);
}
// if user updates notes
function update(new_notes)
{

$.ajax({
type: "POST",
//dataType: "json",
url: '/pcg/popups/updateNotes.php',
data:
{
'nameNotes': notes_name.text(),
'newNotes': new_notes
},
success: function(response) {
alert("Notes Updated.");
var i;
$("#dialog-container").effect( 'fade', 500 );

i = setInterval(function(){
$("#dialog-container").dialog( 'close' );
clearInterval(i);
}, 500);

}
});

}
/******is user closes notes ******/
function closeNotes()
{
var i;
$("#dialog-container").effect( 'fade', 500 );

i = setInterval(function(){
$("#dialog-container").dialog( 'close' );
clearInterval(i);
}, 500);

}

如果您还需要什么,请告诉我!

更新:

基本布局是

<div>
<div>
other stuff...

the table
</div>
</div>

最佳答案

假设 #notes_msg 位于 #dialog-container 中,您必须确保操作以正确的顺序发生。

最好的方法是等待两个 ajax 调用完成,然后继续。您可以使用 ajax 调用返回的 promises/jqXHR 对象来做到这一点,请参阅 this section of the manual .

您的代码看起来像(您必须对其进行测试...):

function run(){
var url = '/pcg/popups/grabnotes.php';
var tag = $("#dialog-container");

var promise1 = showUrlInDialog(url);
var promise2 = sendUserfNotes();

$.when(promise1, promise2).done(function(data1, data2) {
// do something with the data returned from both functions:
// check to see what data1 and data2 contain, possibly the content is found
// in data1[2].responseText and data2[2].responseText

// stuff from first ajax call
tag.html(data1).dialog({
width: '100%',
modal: true
}).dialog('open');

// stuff from second ajax call, will not fail because we just added the correct html
$('#notes_msg').text(data2.the_notes)
});
}

您正在调用的函数应该只返回 ajax 调用的结果,不要做任何其他事情:

function showUrlInDialog(url)
{
return $.ajax({
url: url
});
}
function sendUserfNotes()
{
return $.ajax({
type: "POST",
dataType: "json",
url: '/pcg/popups/getNotes.php',
data: {
'nameNotes': notes_name.text()
}
});
}

关于php - 在 JQuery/Javascript 中使用值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com