如果我正确理解了您的问题,这可能会有所帮助
预览:
创建简单的 html 文档进行测试..
测试.html
<!DOCTYPE html>
<html>
<head>
<title>Test Add/Remove</title>
<script type="text/javascript" src="adddel.js"></script>
<style type="text/css">
<!--
body { font-family: tahoma, verdana, arial; }
.btn { color: #0000ff; font-size: 12px; cursor: pointer; }
.div1 { width: 200px; height: 200px; background-color: #ffffee; border: dashed 1px #494949; position: absolute; left: 50px; top: 50px; padding: 10px; }
.div2 { width: 200px; height: 200px; background-color: #ffffee; border: dashed 1px #494949; position: absolute; left: 280px; top: 50px; padding: 10px; font-size: 14px; }
.myinput { width: 194px; font-weight: bold; font-size: 14px; border: solid 1px #000000; padding: 3px; }
-->
</style>
</head>
<body>
<div id="divinput" class="div1"></div>
<div id="divvalues" class="div2"></div>
<script type="text/javascript">
<!--
// echo next line from php code
myArray = 'Mike,James,Jerry,Tom';
jsStart(myArray, 'divinput', 'divvalues');
-->
</script>
</body>
</html>
如您所见,此 html 包含标题、指向外部JavaScript文件的链接以及HEAD部分中页面元素的一些样式,以及BODY部分中的两个DIV和一些简单的页面 JavaScript。
您所要做的就是从 PHP 代码创建 JavaScript 变量myNames 。我使用了您在问题中提到的相同名称,因此我的行如下所示:
myArray = 'Mike,James,Jerry,Tom';
在 PHP 中创建逗号分隔的列表并在此处回显。
在该行后面,我调用了在外部 JavaScript 文件adddel.js中定义的函数jsStart()。
让我们看看该文件的样子
adddel.js
var name = Array();
// page preparation
function jsStart(a, div1id, div2id) {
// create array of names
name = a.split(',');
// create div1 html
html = '<input type="text" name="myedit" id="myedit" class="myinput" value="" onchange="changeText()" onkeyup="changeText()">';
document.getElementById(div1id).innerHTML = html;
// create div2 html
html = '';
for (i=0; i<name.length; i++) {
if (name[i].trim() != '') {
if (html != '') html += '<br />';
// name
html += '• <b>' + name[i] + '</b> ';
// button
html += ' <span class="btn" id="btn' + i + '" onclick="btnClick(' + i + ')">[Add]</span>';
}
}
if (html == '') html = ' ';
document.getElementById(div2id).innerHTML = html;
changeText();
}
// fires on input-text change
function changeText() {
edl = document.getElementById('myedit').value.trim().split(';');
for (i=0; i<name.length; i++) {
btnText = '[Add]';
for (j=0; j<edl.length; j++) {
ne = name[i].trim().toLowerCase();
nl = edl[j].trim().toLowerCase();
if (ne == nl) {
btnText = '[Remove]';
break;
}
}
document.getElementById('btn' + i).innerHTML = btnText;
}
}
// add/remove name from text-input
function btnClick(id) {
ne = name[id].trim().toLowerCase();
edl = document.getElementById('myedit').value.trim().split(';');
newed = '';
found = false;
for (i=0; i<edl.length; i++) {
nl = edl[i].trim().toLowerCase();
if (nl != '') {
if (nl != ne) newed += edl[i].trim() + ';';
else found = true;
}
}
if (!found) newed+=name[id]+';'
document.getElementById('myedit').value = newed;
changeText();
}
将这两个文件放在同一目录中,然后从浏览器中打开test.html文件。如果你做得对,你会在我的帖子顶部有类似图片的东西。
注意:文本输入中的项目不区分大小写,并且允许名称周围有额外的空格。
这意味着文本
"Mike;John;Sam; BRian"
和
" mike ; john;Sam;Brian "
现在编辑此代码并使其符合您的需求。很简单。
希望这可以帮助