【问题标题】:Showing Javascript variables in a modal在模式中显示 Javascript 变量
【发布时间】:2016-11-08 18:13:10
【问题描述】:

在我的网站上,我正在尝试制作一个模式,通知用户他们的用户名(根据他们的名字和姓氏生成),并通知用户他们已被添加到审核队列中,以便他们的帐户获得批准。我在使用 ajax 调用的 php 文件中创建帐户,然后使用 JSON 反馈一个整数,该整数通知 javascript 进程是否成功,如果成功,用户的用户名是什么。如果创建了帐户并且显示了有关批准过程的信息,我的模式可以正常打开,但是我似乎无法让它显示包含用户名的部分。您可以尝试看看我哪里出错了。

Javascript

var RegisterSuccess = new Array();
var RegisterSuccess = JSON.parse(Feedback);
if (RegisterSuccess[0] == 0){
    $('#mdlInfo').html('<p>Your account has been created under the username: "<strong><span id="spnUsername"></span></strong>". You <strong>must</strong> remember this as you will require it to login to your account.</p>');
    $('#mdlInfo').html('<p>Your account has also been added to a moderation que. You must wait until a member of staff activates your account!</p>');
    $('#spnUsername').html(RegisterSuccess[1]);
    $("#mdlRegister").modal("show");

PHP 输出代码

$Feedback = json_encode(array($RegisterSuccess, $username));

回显 $Feedback;

提前致谢!

【问题讨论】:

    标签: javascript php html json modal-dialog


    【解决方案1】:

    为什么不直接从 PHP 返回一个正确的 json_encoded 数组呢?无需分配变量,只需执行 echo json_encode(["success"=&gt;"true","username"=&gt;"$username"]); 并在 javascript 中(也无需将 RegisterSuccess 分配为数组),只需执行 var returnValue = JSON.parse(Feedback); (你应该避免调用变量RegisterSuccess - 选择一个中性名称,这样你就可以将它用于成功和错误而不会出现问题。然后就这样做

    $('#mdlInfo').html('<p>Your account has been created under the username: <strong><span id="spnUsername">'+returnValue['username']+'</span></strong>. You <strong>must</strong> remember this as you will require it to login to your account.</p><p>Your account has also been added to a moderation que. You must wait until a member of staff activates your account!</p>');
    $("#mdlRegister").modal("show");
    

    【讨论】:

    • 我是否需要在 PHP 脚本中将数据定义为反馈,您可以只将数据参数保留在 ajax 行中作为反馈来标记它吗? $.post('functions/php/fncregister.php', {forename: forename, surname: surname, password: password, passwordR: passwordR}, function(Feedback) {
    • 你可以随便命名。它只需要从 PHP 脚本返回的任何内容。就我个人而言,我称之为(data)
    • 罗杰,这似乎工作得很好。感谢您的帮助和解释,这种事情的很多文档都不是很清楚!
    • 顺便说一句-它可能与您一开始的代码根本不起作用的原因是您声明了$('#mdlInfo').html() 两次-第二次会覆盖第一次。 (.html() 替换元素中的所有内容)
    • 谢谢你!这将解决我将来很多头疼的问题!我将继续按照您之前展示的那样在同一行中使用多个标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    相关资源
    最近更新 更多