我有两个选择框和一个link.i从第一个选择框中选择一个值,从第二个选择框中选择另一个,然后单击链接。每次都必须将值存储在数组中,而不会获得先前的值如果不使用多个选择框,我可以这样做吗?
<select name="sq" id="sq" >
<option value=""></option>
</select>
<select name="as" id="as" >
<option value=""></option>
</select>
抱歉忘记提及..在codeigniter
答案 0 :(得分:1)
您可以使用更改事件来存储选定的值。
HTML 的
<select name="sq" id="sq" >
<option value="1">1</option>
<option value="2">2</option>
</select>
的Javascript
arrSelected = []
$("#sq").change(function(){
arrSelected.push($(this).val());
});
答案 1 :(得分:1)
根据评论中添加的信息,这是我的建议:
HTML:
<div class="selectLine">
<select name="sq[]" >
<option value=""></option>
</select>
<select name="as[]" >
<option value=""></option>
</select></div>
<a id="addOption">
JavaScript的:
$('#addOption').click(function(){
$('.selectLine').last().after($('.selectLine').outerHtml());
$('.selectLine').last().prev().hide();
});
PHP接收帖子:
foreach($_POST['sq'] as $key=>$name){
//Make sure you stay consistent with the keys to make sure the 2 values were entered at the same time.
echo '<p>'.$name.' is a '.$_POST['as'][$key].'</p>';
}
将[]添加到输入名称的末尾将把它们放在数组中。但是如果你想要多个值,你需要不止一个......
您可以删除$('.selectLine').last().prev().hide();
以保持向用户显示行,以便他可以根据需要更改值。
答案 2 :(得分:0)
如果您希望在您的网站上有持久性,那么我建议您查看PHP Cookies。
在您的情况下,您希望持久存储数组,因此您有几个选项。
要么实现HTML Hidden Element,要么可以使用Serialization将数组存储在Cookie中。
答案 3 :(得分:0)
这将使用AJAX发送数据而不刷新页面:
用于链接<a href="#" id="submitlink">Submit data</a>
然后添加以下jQuery脚本:(首先需要包含jQuery库)
$('#submitlink').click(function(event) {
event.preventDefault(); // Stops default link behaviour on click
$.ajax({
url: "yourphp.php", // where to send
data: 'sq=' + $('#sq').val() + '&as=' + $('#as').val(), // select values
type: "POST",
success: function(data){
// If you want to confirm
alert('Added');
}
});
});
然后在您的php脚本中将$ _POST数据存储在数据库或会话中......
会话示例,存储:
<?php
session_start();
if (!isset($_SESSION['sq']) $_SESSION['sq'] = array();
$_SESSION['sq'][] = $_POST['sq'];
if (!isset($_SESSION['as']) $_SESSION['as'] = array();
$_SESSION['as'][] = $_POST['as'];
?>
要检索您可以使用的结果:
<?php
session_start();
if (isset($_SESSION['sq']) print_r($_SESSION['sq']);
if (isset($_SESSION['as']) print_r($_SESSION['as']);
?>
但当然可以详细阐述。