【问题标题】:Getting all list items of an unordered list in PHP在PHP中获取无序列表的所有列表项
【发布时间】:2012-08-01 10:43:18
【问题描述】:

我有这些标签云列表

<ul #id = "tag-cloud-list">
    <li class = "items">Music</li>
    <li class = "items">Lion</li>
    <li class = "items">Dwarf</li<
</ul>

这是由 JQuery 生成的。这里的项目是我将插入数据库的标签。现在我的问题是可以在 ul 中获取所有 &lt;li&gt; 项目吗?并将它们放在 PHP 数组中?因为这些标签中的每一个都将被插入到数据库中。如果我无法使用 php 获取 li 项,那么如何将这些列表项插入数据库?因为我需要它们,因为它是某个项目或帖子的标签

【问题讨论】:

  • 除了使用 jQuery 创建列表元素之外,您还可以将项目内容作为 AJAX 请求发送到 PHP。
  • 我该怎么做?有什么网站或地方可以看到相关教程?
  • 您可以在创建时对其进行 ajax,或者在创建后使用表单发布它们。不知道你到底想做什么。
  • @Kasia gogolek 我正在努力完成你提到的第二个
  • 从那时起这 3 个项目是从什么生成的?

标签: php javascript jquery ajax


【解决方案1】:

您必须进行 AJAX 调用:

var lis = new Array();

// Iterate through the <li> items
$("#tag-cloud-list").children("li").each(function()
{
    lis.push($(this).text());
});

// Make AJAX call and set data to something like "Music::Lion::Dwarf"
$.ajax({
    url: "dostuff.php",
    type: "POST",
    data: { items: lis.join("::") },
    success: function() { alert("OK"); }
});

然后在 PHP 脚本中,使用

$lis = $_POST['items'];
$liarray = explode("::", $lis);

检索li 项的数组

【讨论】:

  • 在dostuff.php里面会自动看到列表项吗?
  • @KyelJmD 在dostuff.php 中,您首先需要捕获data,然后使用这些变量运行INSERT 查询
  • soo 基本上你在参数数据中声明了“items”然后它会自动插入到 hte $_POST 全局数组中?
  • 没错,您在data 参数中给它的名称(不需要任何引号或声明)自动成为POST 项。因此,如果您愿意,可以将其命名为 foo 或其他任何名称:data: { foo:lis.join("::") },。然后你必须打电话给$lis = $_POST['foo'];
  • 哇阿贾克斯魔法!但只是一个问题 lis.join("::") 做什么?并在explode()中。你为什么使用 ("::") ?
【解决方案2】:

除非您以某种方式将数据发送回服务器,否则您无法在 PHP 中获取这些信息。 PHP 在服务器上执行,如果这是通过 jquery 进来的,那么 PHP 对此一无所知。

您将需要使用 javascript 获取所有信息并将其发送回服务器,或者您需要将整个页面 HTML(以某种方式)发送回服务器以供 PHP 查看。我建议第一个选项。

编辑:我对 javascript 不感冒,只是使用一些基本功能,但您可以将事件写入 &lt;div&gt; 或数据进入的位置。该函数将查找&lt;ul id="tag-cloud-list"&gt; 中有多少&lt;li&gt; 将它们弹出到一个数组中,并通过表单或ajax 查询将它们发送到PHP 服务器。

很抱歉,我对 js 代码帮不上什么忙。

【讨论】:

  • @PaulDinh 有趣的评论 - KyelJmD 已经决定使用 jQuery,那么为什么要使用纯 js? jQuery 旨在让事情变得更容易。 GeenHenks 的回答完美地说明了这一点。不是咆哮只是一个想法......
  • 学习 jQuery 真的值得,一旦你知道它就很容易上手
  • 完全同意@GreenHenk。在我掌握 jQuery 的概念的那一刻,我讨厌回到纯 JS 的想法。 jQuery 让生活变得如此简单
  • @PaulDinh 一个非常棒的评论“如果 jQuery 不再处于开发阶段怎么办”,我正在把我的电脑放在垃圾箱里,因为我们会说话 :)
  • @PaulDinh - 说“不要依赖 jQuery”真是太疯狂了。它解决了 难以置信 数量的问题,否则这些问题会使严肃的 JavaScript 开发永远耗时。 jQuery 应该被尽可能地接受。
【解决方案3】:

您需要使用 JQuery 中的 .find() 函数获取 ul 中的所有项目,并使用 ajax 进行 POST 并处理信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2021-12-06
    • 2018-09-05
    • 2011-03-17
    • 1970-01-01
    相关资源
    最近更新 更多