将选择框值存储到数组中

时间:2013-03-06 10:24:15

标签: php jquery ajax

我有两个选择框和一个link.i从第一个选择框中选择一个值,从第二个选择框中选择另一个,然后单击链接。每次都必须将值存储在数组中,而不会获得先前的值如果不使用多个选择框,我可以这样做吗?

<select name="sq" id="sq" >
<option value=""></option>
</select>

<select name="as" id="as" >
<option value=""></option>
</select>

抱歉忘记提及..在codeigniter

4 个答案:

答案 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']);
?>

但当然可以详细阐述。