我在传递/显示所选列表中的值时遇到问题。我使用 Jquery 创建了一个添加/删除列表,我尝试显示使用 foreach 和 for 循环传递的值,但它仍然不起作用。我试图获取的值是名为selectto的列表中的$existing_mID[$j]。仅供参考,我是Javascript的新手,因此我对下面的Jquery代码知之甚少,因为我采用了不同的参考资料并提出了它。
请让我知道我应该怎么做才能获得价值观,我非常感谢您的帮助。
下面是我用来实现添加/删除函数的函数。
$(document).ready(function() {
$('#btn-add').click(function(){
$('#select-from option:selected').each( function() {
$('#select-to').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
$('#select-to option').attr('selected',true);
$(this).remove();
});
});
$('#btn-remove').click(function(){
$('#select-to option:selected').each( function() {
$('#select-from').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
$('#select-to option[value=' +$(this).val()+ ']').attr('selected',true);
$(this).remove();
});
});
});
这是我用来设置选项属性的形式:
<form action = "" method = "POST">
<select name="selectfrom[]" id="select-from" multiple="" size="10">
<?php $j=0; foreach($existing_mTitle as $item) { ;?>
<option value="<?php $existing_mID[$j];?>" >
<?php echo "$existing_mID[$j] & $item";$j++;?>
</option> <?php }?>
</select>
<a href="JavaScript:void(0);" id="btn-add">Add »</a>
<a href="JavaScript:void(0);" id="btn-remove">« Remove</a>
<select name="selectto[]" id="select-to" multiple="" size="10"> </select>
<input type="submit" name="addArticle" value="Add" /> </form>
以下是我尝试调用变量的方式。它们都不起作用。所以我在想Jquery代码是否有任何问题。
<?php
if(isset($_POST['selectto']))
{
$selected = $_POST['selectto'];
echo "something in selected<br />";
for ($i=0;$i<count($selected);$i++)
echo "selected #1 : $selected[$i]";
foreach ($selected as $item)
echo "selected: item: $item";
foreach ($selected as $idx => $item)
{
echo "selected: {$idx}: {$item}<br>n";
}
}
?>
下面是我正在处理的每一行代码。我认为我的选择列表或我的 javascript 中的选项值属性有问题。但我不知道在哪里寻找错误。我很抱歉发布了很多代码,但没有提供太多信息。
请查看它并确定 selectto 选项值未正确显示的原因
$messagesql = "SELECT mID, mTITLE from test.message";
$mQuery = mysqli_query($dbc, $messagesql) or die (mysqli_error($dbc));
$num_Mrows=mysqli_num_rows($mQuery);
echo "Number of message rows: $num_Mrows<br />";
while ($row = mysqli_fetch_array($mQuery,MYSQLI_BOTH))
{
$existing_mTitle[] = $row [ 'mTITLE' ];
$existing_mID[] = $row ['mID'];
}
if(isset($_POST['selectto']))
{
$selectedValues = '';
foreach($_POST['selectto'] as $index => $value) {
$selectedValues .= $value.', ';
}
$selectedValues = rtrim($selectedValues , ''); // remove last comma and whitespace
echo 'The selected values are: '. $selectedValues ;
}
else
echo "nothing in selected<br />";
$articleSubmit = $_POST['addArticle'];
if(isset($articleSubmit))
{
$titleSubmit = $_POST['articleTitle'];
$summarySubmit = $_POST['articleSummary'];
$abstractSubmit = $_POST['articleAbstract'];
$regionSubmit = $_POST['articleRegion'];
$populationSubmit = $_POST['articlePopulation'];
$docTypeSubmit = $_POST['articleDocType'];
$docStatusSubmit = $_POST['articleDocStatus'];
$docYearSubmit = $_POST['articleDocYear'];
$keywordSubmit = $_POST['articleKeyword'];
if (null ==($titleSubmit) or null ==($summarySubmit) or null ==($abstractSubmit) or null ==($regionSubmit) or null ==($populationSubmit)
or null ==($docTypeSubmit) or null ==($docStatusSubmit) or null ==($docYearSubmit) or null ==($keywordSubmit) /*or !isset($selected)*/)
{
echo "you need to fill in all the fields in order to add a new article.";
}
else
{
echo "article submitted";
$aSQL = "INSERT INTO test.article
(name, abstract, summary, region, population, docType, docStatus, docYear, keyword) values
('$titleSubmit', '$abstractSubmit', '$summarySubmit', '$regionSubmit', '$populationSubmit',
'$docTypeSubmit', '$docStatusSubmit', '$docYearSubmit', '$keywordSubmit')";
echo $aSQL;
$aQuery = mysqli_query($dbc,$aSQL) or die (mysqli_error($dbc));
$aidSQL = "SELECT aID from article where name = '$titleSubmit' and abstract = '$abstractSubmit' and summary = '$summarySubmit'";
$aidQuery = mysqli_query($dbc, $aidSQL) or die (mysqli_error($dbc));
while ($row = mysqli_fetch_array($aidQuery, MYSQLI_BOTH))
{
$assocAID = $row;
}
echo "<br />assocAID: $assocAID[0]<br />";
$selected = $_POST['selectto'];
foreach($selected as $item)
{
$amSQL = "INSERT INTO a_m (assocAID, assocMID) values ($assocAID[0], $item)";
$amQuery = mysqli_query($dbc,$amSQL) or die (mysqli_error($dbc));
}
}
}
?>
<script type="text/javascript" src="jquery-latest.min.js"></script>
<script type="text/javascript" src="test5-1-1.js"></script>
<link rel="stylesheet" type="text/css" href="test5-1-1.css"/>
<head>
<meta charset="utf-8">
<title>Add New Content</title>
<link rel="stylesheet" href="jquery-ui.css">
<script src="jquery-1.10.2.js"></script>
<script src="jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css"/>
<link rel="stylesheet" href="cyjm4.css"/>
<script>
$(function() {
$( "#tabs" ).tabs();
});
</script>
</head>
<body>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Article</a></li>
<li><a href="#tabs-2">Message</a></li>
<li><a href="#tabs-3">Platform</a></li>
</ul>
<div id="tabs-1">
<form action="" method="POST">
<p>Title:</p> <textarea name="articleTitle" cols="40" rows="3"></textarea>
<p>Summary:</p> <textarea name="articleSummary" cols="40" rows="8"></textarea>
<p>Abstract:</p> <textarea name="articleAbstract" cols="80" rows="6"></textarea>
<p>Keyword:</p> <textarea name="articleKeyword" cols="40" rows="2"></textarea>
<div id="left">
<p>Regions:</p>
<select name="articleRegion">
<option value="US">United States</option>
<option value="UK">United Kingdom</option>
<option value="EUROPE">Europe</option>
</select>
<p>Populations:</p>
<select name="articlePopulation">
<option value="General">General</option>
<option value="Elderly">Elderly</option>
<option value="Women">Women</option>
</select>
<p>Document Type:</p>
<select name="articleDocType">
<option value="Research">Research</option>
<option value="Report">Report</option>
</select>
<p>Document Status:</p>
<select name="articleDocStatus">
<option value="Published">Published</option>
<option value="Unpublished">Unpublished</option>
</select>
<p>Documnet Year:</p>
<select name="articleDocYear">
<option value="2004">2004</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
<br /><br />
</div>
<fieldset>
<select name="selectfrom[]" id="select-from" multiple="" size="10">
<?php $j=0; foreach($existing_mTitle as $item) { ;?>
<option value=" <?php $existing_mID[$j]; ?> " ><?php echo "$existing_mID[$j] & $item";$j++;?></option>
<?php }?>
</select>
<button type="button" id="btn-add">Add</button>
<button type="button" id="btn-remove">Remove</button>
<select name="selectto[]" id="select-to" multiple="" size="10">
</select>
</fieldset>
<input type="submit" name="addArticle" value="Add" />
</form>
</div>
<div id="tabs-2">
<p>Title:</p> <textarea name="articleTilte" cols="40" rows="3"></textarea>
<p>Summary:</p> <textarea name="articleSummary" cols="40" rows="8"></textarea>
</div>
<div id="tabs-3">
<p></p>
</div>
</div>
</body>
</html>
代码。假设您有以下代码
<form method="POST">
<select name="selectfrom[]" id="select-from" multiple="" size="10">
<?php
for($i = 0; $i < 10;$i++) {
echo '<option value="'.$i.'">Item '.$i.'</option>';
}
?>
</select>
<button id="btn-add" type="button>Add »</a>
<button id="btn-remove" type="button">« Remove</a>
<select name="selectto[]" id="select-to" multiple="" size="10"> </select>
<input type="submit" name="addArticle" value="Add" /> </form>
</form>
<?php
print_r($_POST);
/*
Array
(
[selectto] => Array
(
[0] => 2
[1] => 3
)
[addArticle] => Add
)
*/
//So this means that :
$selectedValues = '';
foreach($_POST['selectto'] as $index => $value) {
$selectedValues .= $value.', ';
}
$selectedValues = rtrim($selectedValues , ', '); // remove last comma and whitespace
echo 'The selected values are: '. $selectedValues ;
?>