我是jQuery的新手,我正在尝试实现这个:
在我的PHP页面中,我想做一些像添加/删除按钮/图标(请检查:http://muiomuio.com/tutorials/jquery/add-remove/ http://muiomuio.com/web-design/add-remove-items-with-jquery),当点击添加时我想显示一个新的字段集(特别是下拉菜单)。在上面显示的示例中,它只有1个文本字段。
但是,这些不是普通字段,我希望它们用数据库中的值填充,其中一些需要是交互式的。换句话说,启用了AJAX。因此,在我的PHP页面中,我想进行查询以处理这些交互式部分。
更具体地说,让我们将这个“新”项目称为一行。一行包含:
服务:下拉菜单(静态,每次创建新项目行时无需调用数据库)
存储:下拉菜单(dynamic-ajax,它将检查服务下拉菜单,并根据其值,将从数据库中获取提供此服务的商店)< / p>
状态:下拉菜单(静态,每次创建新项目行时无需调用数据库)
现在从这个简单的演示中,我知道如何进行添加/删除功能,但我不知道如何进行数据库调用以获取下拉菜单的值。此外,我不知道如何制作动态“存储”列表,该列表取行的服务菜单的值。
所以,如果我们有10行,每个都有它的服务,并且在row1中更改服务,除了row1的Store列表值之外不应该只影响..等等。所以它们是分开的行。
请帮助解决这个问题。谢谢!
答案 0 :(得分:1)
好吧,我假设您已经添加并删除了所有已整理的内容,但是,最好还是看看您的代码,看看您是否以某种方式实现了它,每个新项目都有唯一标识,例如:
<select id="service-1">.....</select>
<select id="store-1">......</select>
<select id="status-1">.....</select>
<select id="service-2">.....</select>
<select id="store-2">......</select>
<select id="status-2">.....</select>
现在来到Javascript。基本上你必须告诉jQuery当服务选择框发生onChange事件时,它必须找出它的标识符,从服务器请求数据并用你刚刚使用的id store + identifier替换元素中的内容。
$('select[id^="service-"]').change(function(){
var id = $(this).attr('id');
id = id.replace('service-', '');
var someValue = $(this).val();
$.get('/fetch/content/from/this/url?param='+someValue, function(data){
$('#store-' + id).html(data); // that would be if your script returns HTML.
// You can easily alter the functionality to
// rebuild the dropdown menu from JSON object
// or something like that
});
});
基本上就是这样。 :)
哦,拜托,如果它不起作用,请告诉我,可能有一些dom操纵我已经忘记了。我没有对它进行测试,但是我使用了这种方法十亿次,所以它绝对有效。
答案 1 :(得分:0)
尽管我不喜欢推荐这个,但最好的选择可能是预先填充的字段。使用PHP构建下拉菜单,然后使用jQuery隐藏它们。如果它们不是太多,那么不应该有巨大的性能损失。
除非我误解了你的问题,否则我认为这是最简单的解决方案。
答案 2 :(得分:0)
最好将值存储在SESSION中吗?然后在创建新字段时,您只需调用SESSION变量?您将只有一次调用db和内存中的所有数据......