在PHP中获取无序列表的所有列表项

时间:2012-08-01 10:43:18

标签: php javascript jquery ajax

我有这些标签云列表

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

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

3 个答案:

答案 0 :(得分:5)

您必须拨打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项目的数组

答案 1 :(得分:3)

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

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

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

很抱歉,我对js代码无能为力。

答案 2 :(得分:2)

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