簡體   English   中英

將選擇框值存儲到數組中

[英]storing select box values into an array

我有兩個選擇框和一個link.i從第一個選擇框中選擇一個值,從第二個選擇框中選擇另一個,然后單擊鏈接。每次都必須將值存儲在一個數組中,而不會更換先前的值。我可以不使用多個選擇框嗎?

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

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

對不起忘記提及..在codeigniter中

您可以使用change事件來存儲選定的值。

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());
});

通過評論中添加的信息,這是我的建議:

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(); 保持顯示給用戶的線條,以便他可以根據需要更改值。

如果您希望在您的網站上有持久性,那么我建議您查看PHP Cookie

在您的情況下,您希望持久存儲數組,因此您有幾個選項。

要么實現HTML隱藏元素,要么使用序列化將數組存儲在cookie中。

這將使用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']);
?>

但當然可以詳細闡述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM