我试图使用一个变量,该变量是通过在另一个ajax函数的一个ajax函数中从php发送的数据创建的。我不确定自己在做什么错。我尝试通过执行var nameOutput使其创建为全局变量,还尝试了var nameOutput = 0。您将在第二个ajax函数中看到警报代码。这什么也不输出。如果删除.val(),则会收到对象Object。

有问题的代码在第二个Ajax函数中:data: { 'nameOutput': nameOutput.val() }

有谁知道我该怎么办?

var nameOutput;

$('#shuffle').on('click', function() {
    $.ajax({
        url: 'php/name-selection.php',
        type: 'POST',
        success: function(data) {
            nameOutput = $('#name-output').html(data);
            $(nameOutput).html();
        },
        complete:function(){
            $('#send-info').slideDown(1500);
        },
        error: function(xhr, textStatus, errorThrown) {
            alert(textStatus + '|' + errorThrown);
        }
    });
});
//var datastring1 = $('#name-output').serialize();
$('.check').click(function() {
    alert(nameOutput.val());
    $.ajax({
        url: 'php/name-selection-send.php',
        type: 'POST',
        data: {
            'nameOutput': nameOutput.val()
        }
        ,
        success: function(data) {
            if (data == 'Error!') {
                alert('Unable to  submit inquiry!');
                alert(data);
            } else {
                $('#success-sent').html(data);
            }
        },
        complete:function(){

        },
        error: function(xhr, textStatus, errorThrown) {
            alert(textStatus + '|' + errorThrown);
        }
    });

最佳答案

如果可以使用.html('blah')设置nameOutput的内部html,那么可以使用nameOutput.html()而不是nameOutput.val()再次提取html;

但是我认为您必须将这样的元素定义为HTML元素:

var nameOutput=$('<div></div>');


同样在第一个ajax函数中,使用以下命令设置html:

nameOutput.html(data);


并且如果存在一个ID为name-output的真实元素,并且您希望结果可见,请执行以下两项操作:

nameOutput.html(data);
$('#name-output').html(data);

09-25 15:13