0

我在一个页面上有一个表单,一些表单数据是从我的 mysql 数据库中的各个表中提取的——这些表包含不同选择的选项,所以以下是我的数据在 php 脚本运行后的样子:

 <select name="vehicleStyle">
    <option value="empty" selected="selected">- select -</option>
    <option value="coupe">Coupe</option>
    etc....
  </select>

我有第二个表单,它在 iframe 中加载到这个页面上,这个第二个表单允许我更新这个 mysql 表中包含的数据,以便我可以动态地向表单添加选项。一切工作都非常好,但是,如果我动态更新(添加一个值)到这个表,我必须刷新页面,以便新数据显示在主页的第一个表单中。我玩过自动刷新页面,但这有点令人讨厌。

有没有办法通过 jquery 将此表单数据直接添加到我的原始页面中?

我认为当您添加推文(我不使用推特)时,推特会执行类似的操作,但它会将您最近的推文添加到页面顶部,而不会实际重新加载整个页面。

非常感谢!

4

3 回答 3

1

我认为您想使用 JS 进行 DOM 操作。您所要做的就是将带有用户输入值的新 OPTION 标记附加到 SELECT 中,例如:

var option = $('<OPTION/>');
$(option).html('INSERT YOUR VALUE HERE');
$('SELECT').append(option);

请记住:这是在客户端添加一个选项。因此,如果您的实际表单提交(在您的 iframe 中)未能将数据推送到您的数据库,这将代表您的用户的不一致视图(他会认为创建了新的 OPTION 但实际上失败了)。

因此,您必须将 UI 更新与后端响应联系起来。通常,您会在更新后端的调用的 AJAX 响应中刷新此 UI。

于 2010-09-23T17:04:47.627 回答
1

我相信最好的方法是使用加载 jQuery 函数(http://api.jquery.com/load/)。它允许您直接从 javascript 从 url 加载页面。

这是我要做的:

  • 将选择的创建移动到新的 url(例如 fillselect.php)
  • 在不创建选择的情况下加载页面:改为创建一个 div 标签(例如,将其命名为 divforselect)
  • 在页面的onload javascript 事件中,这样写: $("#divforselect").load("fillselect.php")这将导致div 标签innerText 设置为fillselect.php 页面的内容。所以 url fillselect.php 不会是一个完整的 html 页面,而只会包含 select 标记。

之后,您可以随时调用$("#divforselect").load("fillselect.php")刷新选择!

于 2010-09-23T17:18:58.837 回答
0

也许您应该使用 AJAX 来填充这些框?然后你可以让它随时刷新数据。

jQuery 阿贾克斯

于 2010-09-23T17:06:11.607 回答