如何使用选择框从生成的列表中创建项目数组,以便对项目进行排序并用逗号分隔它们。
示例...
我有一个由数据库中的id生成的项目列表,其中包含与项目关联的选择框。
<?php
$sql = mysql_query("SELECT id, title FROM songs WHERE id='$id' ORDER BY title ASC");
while($row = mysql_fetch_array($sql)){
$id = $row['id'];
$title = $row['title'];
$song_chart .= '
<div id="$id">
<select>
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
<option val="4">4</option>
//etc...
</select>
<a href="page.php?id='.$id.'">'.$title.'</a>
</div>';
}
$song_chart .= '<button></button>';
echo $song_chart;
?>
我有多个要为其选择值的项目。
如果值大于0,我想从项目中获取“id”,选择与选择相关联,并按选择(而不是id)对所有项目进行排序。
然后我想发布信息并将其放入逗号分隔的数组中以插入我的数据库。
我目前没有任何实际尝试的代码,我真的不知道如何解决这个问题。任何帮助将不胜感激。提前谢谢!
修改
上面的输出看起来像这样......
<div id="1">
<select>
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
<option val="4">4</option>
//etc...
</select>
<a href="page.php?id=1">one</a>
</div>
<div id="2">
<select>
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
<option val="4">4</option>
//etc...
</select>
<a href="page.php?id=2">two</a>
</div>
<div id="3">
<select>
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
<option val="4">4</option>
//etc...
</select>
<a href="page.php?id=3">three</a>
</div>
<div id="4">
<select>
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
<option val="4">4</option>
//etc...
</select>
<a href="page.php?id=4">four</a>
</div>
<button></button>
然后在提交时,我想重新组织生成的id与所选值的匹配,然后将其放在数组/字符串中,如此...
var arr = '2, 3, 1, 4';
并将它们发布到数据库中。
答案 0 :(得分:1)
好的,在这种情况下,更容易在OPTION
的值中编码数据<div id="3">
<select>
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
<option val="4">4</option>
//etc...
</select>
<a href="page.php?id=3">three</a>
</div>
变为:
<div id="3">
<select>
<option val="3,1">1</option>
<option val="3,2">2</option>
<option val="3,3">3</option>
<option val="3,4">4</option>
//etc...
</select>
<a href="page.php?id=3">three</a>
</div>
将ID嵌入数据中。逗号分开。
答案 1 :(得分:0)
我在Diodeus的帮助下找到了解决方案(谢谢)。
$(document).ready(function(){
$('.selection').value(""); // clears the values
$('selection option').click(function(){ // when option is clicked
s=new Array(); // create array
$("select option:selected").each(function(){
// check to see which values are selected
var v = $(this).val();
if(v != ""){ // if the value is not empty.
s.push(v);
}
});
});
$("#submitList").click(function(){
if(s != ""){
alert(s);//or submit the list
}
});
});
我还在html输出中更改了一些内容。
<div id="3">
<select class='selection'>
<option></option>
<option val="1,id">1</option>
<option val="2,id">2</option>
<option val="3,id">3</option>
<option val="4,id">4</option>
//etc...
</select>
<a href="page.php?id=3">three</a>
</div>