【问题标题】:Inserting variables within a javascript function parameter在 javascript 函数参数中插入变量
【发布时间】:2013-03-28 04:55:21
【问题描述】:

我到处寻找,找不到我的问题的具体答案。我尝试了所有建议均无济于事。

使用 AJAX、javascript、PHP 和 MySQL。我正在创建一个脚本,当被调用时会获取用户列表。在该用户列表上,我想包含一个链接来管理有关该用户的信息。这就是我卡住的地方。

链接 manage 应该链接到 managePlayer("userID") (例如:managePlayer(1))。这个尚未创建的 javascript 函数将使用用户 ID 并将其传递给 PHP 以生成与该用户 ID 相关的 mySQL 数据库信息。

问题是,我这辈子都不知道如何将带有变量 userID 参数的 managePlayer 函数输入到链接中。

这是我的代码:

            var userID = response.data[index].user_id;

            htmlString += "<tr class='rowLight' height='30'> <td>"
                + response.data[index].user_name
                + "</td><td>"
                + response.data[index].first_name
                + "</td><td>"
                + response.data[index].last_name
                + "</td><td>"
                + response.data[index].email_address
                + "</td><td>"
                **+ "<a href='javascript:' onClick='managePlayer(\'' + userID'\');'>Manage Player</a>"
                + "</td></tr>";

带有**的那一行是直接问题所在。

感谢您的所有帮助!谢谢!

【问题讨论】:

    标签: php javascript mysql ajax oop


    【解决方案1】:

    userIDNumber 还是 String

    A) 如果是String

    "<a href='javascript:' onClick='managePlayer(\"" + userID + "\");'>Manage Player</a>"
    

    因为生成的 HTML 字符串将是:

    例如。如果userID"123"。那么 HTML 应该是:

    <a href='javascript:' onClick='managePlayer("123");'>Manage Player</a>
    

    诀窍是因为您对 HTML attributes 使用了单引号,那么您需要对 managePlayer() onclick 使用 " 双引号;但是,因为您使用 " 处理 JavaScript 字符串,所以您需要 转义 managePlayer() 内的 "


    B) 如果是Number

    "<a href='javascript:' onClick='managePlayer(" + userID + ");'>Manage Player</a>"
    

    因此生成的 HTML 字符串将是

    例如。如果userID123。那么 HTML 应该是:

    <a href='javascript:' onClick='managePlayer(123);'>Manage Player</a>
    

    【讨论】:

    • @mplungjan 我使用了---,它使文本变成了更大的粗体文本,我认为它是用于标题的,我会调低一些。我虽然大喊大叫是当有人使用全部大写字母时?
    • @sweetamylase 我真的很喜欢你的答案 +1 如果可以的话
    • 好多了 :) 标题字体也感觉像在大喊大叫 :)
    【解决方案2】:

    试试

    + '<a href="#" onClick="return managePlayer(\'' + userID +'\');">Manage Player</a>'
    

    因为您需要在单引号中引用用户 ID,以结束

    <a href="#" onclick="return managePlayer('John')">Manage player</a>
    

    并在管理播放器末尾添加

    return false;
    

    如果 eclipse 不喜欢它,请交换引号

    + "<a href='#' onClick='return managePlayer(\""+ userID +"\");'>Manage Player</a>"
    

    【讨论】:

    • 为什么我会返回 false;最后?
    • 因为如果你不这样做,链接的 href 将被跟随 - 部分卸载页面
    • Eclipse IDE 给了我这个错误:这一行有多个标记 - 字符串文字没有被匹配的引号正确关闭 - 标记上的语法错误,删除这些标记
    【解决方案3】:
    + "<a href='javascript:' onClick='managePlayer('" + userID + "');'>Manage Player</a>"
                                                    ^--       ^^^^--
    

    由于您当时处于双引号字符串中,因此您需要跳出该双引号字符串,以便回到实际构建该字符串的“代码”级别。

    【讨论】:

    • 不。单中单
    • 呃,你没看到 OP 正在使用的" 吗?
    • 呃,你没有看到包裹 onclick 的单引号吗?
    【解决方案4】:

    试试这个。我认为它会起作用..

    + "<a href='javascript:' onClick='managePlayer(\'"+userID+"\');'>Manage Player</a>"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 2011-01-09
      • 2013-08-07
      • 2018-02-01
      • 1970-01-01
      相关资源
      最近更新 更多