Javascript HTML以$.ajax格式返回的问题
嘿,伙计们,我有以下代码:Javascript HTML以$.ajax格式返回的问题,javascript,jquery,html,jquery-ui,dialog,Javascript,Jquery,Html,Jquery Ui,Dialog,嘿,伙计们,我有以下代码: $(document).ready(function () { $(".atf-submit").click(function () { atf_name = $(this).parent().parent().find(".user_table"); atf_amount = $(this).parent().parent().find(".user_atf"); runATFins
$(document).ready(function () {
$(".atf-submit").click(function () {
atf_name = $(this).parent().parent().find(".user_table");
atf_amount = $(this).parent().parent().find(".user_atf");
runATFinsider();
});
});
function runATFinsider(){
var urlatfinsider = '/pcg/ATF/updateATF_window.php';
var tagatfinsider = $("#insider_dialog");
var promise1a = showUrlInDialogATFinsider(urlatfinsider);
var promise2a = sendUpdateATFwindow();
$.when(promise1a, promise2a).done(function(data1, data2) {
tagatfinsider.html(data1[0]).dialog({
width: '100%',
modal: true
}).dialog('open');
//$('.updaterATF_outerbody').text(data2[0].atfName),
//$('.updaterATF_outerbody').text(data2[0].atfAmount)
//alert(data2[0].atfname);
console.log(data2);
});
}
function showUrlInDialogATFinsider(urlatfinsider)
{
return $.ajax({
url: urlatfinsider
});
}
function sendUpdateATFwindow()
{
return $.ajax({
data: {
'atfName': atf_name.val(),
'atfAmount': atf_amount.val()
}
});
}
查看顶部,假设在执行控制台时,atf\u name
和atf\u amount
的值是'joe and 0'
。log
或alert(data2[0].atfName)
它不存在吗?它没有定义,当我执行console.log(data2)时,值应该位于表的HTML的邻接处,所有值都来自于此。我不知道为什么会发生这种情况,这毫无意义,因为当我发出警报(aft_name.val())
时,我会得到正确的值
如果你能帮我一把,我将不胜感激。当一个对话框窗口已经打开并且打开了另一个窗口时,此代码也会运行。我认为这不应该是个问题
大卫
以下是HTML:
<input type='hidden' class='user_table' value='$memusername'/>
<input type='hidden' class='user_atf' value='$memATF'/>
这些都在一个表中。不确定,但我已经完成了jQuery AJAX返回值,如下所示:
$.ajax({
type: "POST",
url: url,
data: 'string'
}).done(function(returnVar) {
/* Do something with returnVar*/
});
老实说,我不知道这是否有帮助,但这是我个人使用的
编辑:
还必须发送AJAX文件中的返回。我主要处理PHP文件,所以我只是这样做
ECHO$myVariable代码>嘿,伙计们,我知道了。我实际上需要创建一个单独的文件来返回发送的值,所以我创建了以下内容:
$name_ATF = trim( $_POST['atfName'] );
$amount_ATF = trim( $_POST['atfAmount'] );
$returnArray = array( 'atfName' => $name_ATF, 'atfAmount' => $amount_ATF);
echo json_encode($returnArray);
工作得很好。谢谢你们的辛勤工作
David将此作为一个答案,因为我指出您不需要通过ajax调用来获取解决方案注释中的atf\u name
和atf\u amount
的值。为了尽量减少对代码的更改,我的建议是将sendUpdateAfWindow()
更改为:
function sendUpdateATFwindow() {
return {'atfName': atf_name.val(), 'atfAmount': atf_amount.val()};
}
你在哪里做警报(数据[0].atfName)
?我会做警报(数据2[0].atfName在.$when中)如果你能把你的js和html放在@DavidBiga上,调试会容易得多。它是未定义的,因为你的ajax请求没有返回它。@KevinB我怎么解决这个问题?是的,我需要使用$。对于这个问题,所以我必须把它还给你。明白了,奥威尔:-)我没有别的事要做,所以我会四处挖掘,做些研究,看看我是否找到了什么。如果没有其他帮助的话,它也可以帮助我学习。为什么要发送一个额外的请求来返回可以直接从页面中提取的值?除非您将值存储在服务器上或某个数据库中,否则此请求是不必要的。我不知道如何用@derekaug的另一种方法来执行此操作。您可以向我演示一下吗?您应该能够将sendUpdateAfWindow()
函数更改为此<代码>函数sendUpdateAfWindow(){return{'atfName':atf_name.val(),'atfAmount':atf_amount.val()};}。这样,您就不会发送请求来吐回您发送给它的值。@derekuag它成功了……您想把awnser放进去,我会给您分数!:)