【问题标题】:Calling a javascript function from a php dropdown, loaded with jquery从 php 下拉列表调用 javascript 函数,加载 jquery
【发布时间】:2011-03-18 11:43:23
【问题描述】:

现在,如果标题还不足以让您望而却步,那么您可能已经知道这个问题的答案了。

首先,感谢所有在过去几个问题中为我提供帮助的人,但特别感谢 Bazmegakapa 的所有帮助。

这是最后一个问题(目前):

我有一个用 PHP 编写的下拉框,它从 MySQL 数据库中填充自身。 使用 jQuery.load 将下拉框拉入我的 HTML / Javascript 页面 我现在需要做的是,当有人从下拉列表中选择一个选项时,它会调用一个 javascript 函数,将下拉列表中所选项目的值传递给它。

无法弄清楚如何做到这一点 - 它可能非常简单(但我也是)

谢谢大家!

罗伯。

【问题讨论】:

标签: php javascript ajax jquery


【解决方案1】:

在带有值的选择框上做某事的快速工作示例

<select id="dropdown">
   <option value="1">foo</option>
   <option value="2">bar</option>
   <option value="3">bla</option>
   <option value="4">test</option>
</select>

<script>

    function start(value) {
       //do something with the value
    }

   $('#dropdown').change(function() {

    //do something with this value like calling a function etc.

  //$(this).val() returns the value of the selected element
     start($(this).val());
    });

</script>

【讨论】:

  • 谢谢亚历克斯。我可能应该提到我只是通过反复试验才走到这一步,而且我只“玩”这种东西大约 8 周,所以请原谅我的愚蠢,但如果我说我想调用一个名为'start'的现有函数并将所选项目的值传递给它,请你告诉我代码应该是什么样子。谢谢。罗伯。
  • 我已经编辑了我的代码以反映您的要求。只需定义一个接受 1 个参数的启动函数并在更改事件函数中调用它
  • 感谢亚历克斯。帮助很大。
  • 没问题,如果你能接受答案就好了。
【解决方案2】:

select 是通过.load() 插入的,因此您必须定义一个回调以在.load() 操作完成并成功时运行。你可以这样做(jQuery load() doc):

$('#i_want_my_select_here').load('/temp/select.php', function () { //callback
  $('select', this).change(function () { //catch onchange event of select
    //call your function here, pass the selected value
    start($(this).val());
  });
});

【讨论】:

  • 好的,我保证,这真的是最后一点 - 在 jQuery 之前还定义了另一个变量,我也需要将该值传递给函数。我试着做code start($(this).val(), user); code(用户是变量)但这不起作用。我也试过 $user (只是为了它),但也没有用。
  • 取决于user 是在哪里定义的,在哪个范围内。也许它在那个范围内不可用。
  • 从字面上看,在 `$('#i_want...... ` 行上方的行中,它显示为 `var user = 'some user' `
  • 那么应该可以工作......鉴于这么多信息很难猜到。阅读有关变量范围的信息,或者如果您无法获得它,请发布带有代码详细信息的问题。
【解决方案3】:

在 Javascript(尤其不是 jQuery)中,您只需要一个 onclick 事件,即可在下拉菜单中调用以 this.value 为参数的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多