Php 将选择框值存储到数组中
我有两个选择框和一个链接。我从第一个选择框中选择一个值,从第二个选择框中选择另一个值,然后单击链接。每次都必须将这些值存储在一个数组中,而不替换以前的值。如果不使用多个选择框,如何执行此操作Php 将选择框值存储到数组中,php,jquery,ajax,Php,Jquery,Ajax,我有两个选择框和一个链接。我从第一个选择框中选择一个值,从第二个选择框中选择另一个值,然后单击链接。每次都必须将这些值存储在一个数组中,而不替换以前的值。如果不使用多个选择框,如何执行此操作 <select name="sq" id="sq" > <option value=""></option> </select> <select name="as" id="as" > <option value=""></op
<select name="sq" id="sq" >
<option value=""></option>
</select>
<select name="as" id="as" >
<option value=""></option>
</select>
抱歉忘了提及..它在codeigniter中您可以使用更改事件来存储选定的值 Html
如果你希望在你的网站上有持久性,那么我建议你调查一下 在您的情况下,您希望持久地存储一个数组,因此有几个选项
实现或您可以使用将数组存储在cookie中。根据评论中添加的信息,我的建议如下: HTML: 我收到这封信:
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>';
}
foreach($\u POST['sq']作为$key=>$name){
//确保与键保持一致,以确保同时输入两个值。
echo“”.$name.“是一个“$\u POST['as'][$key]”。;
}
将[]添加到输入名称的末尾将把它们放入数组中。但是如果你想要不止一个值,你需要不止一个
您可以删除
$('.selectLine').last().prev().hide()
将行显示给用户,以便用户可以根据需要更改值。这将使用AJAX发送数据,而无需页面刷新:
用于链接
然后添加以下jQuery脚本:(首先需要包括jQuery库)
然后在php脚本中,将$\u 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'];
?>
存储是什么意思?每次在页面上更改时,还是每次提交后更改?你能再添加一些代码吗?嗨,欢迎来到StackOverflow。你的问题措辞让我很难理解。请尝试添加示例输入/输出或示例,以帮助我们更好地理解您的问题/目标。检查并尝试此示例方法。当我单击链接时,所选的值必须存储到数组中。我再次选择两个不同的值并单击链接。这些值必须与其他值一起附加。最后,我希望显示该数组中的所有值。因此,您可能希望使用AJAX将选择值发布到您的PHP并存储在那里?这实际上非常有趣!我不知道html名称属性的行为是这样的。你介意制作一把小提琴来演示一下吗?这可不是OP想要的。每个选择框在页面上只使用一次。@jtheman它仍然非常接近。。。可能需要稍作调整,但问题也不太清楚。@Salketer如果问题不清楚,是否习惯添加注释以要求澄清?不,完全不结束,因为数组的使用在每个选择框内,而不是在框之间。此外,他希望在每次提交后存储值。我无法遵循会话部分。如何将这些值发送到控制器并在widout会话中显示?这是以最基本的方式使用PHP本机会话。您没有告诉我们您正在使用的控制器。这只是将表单数据添加到会话cookie中的一个非常基本的脚本。我猜不出你的设置,所以请包括有关PHP基础设施的相关信息,并在原始问题中作为编辑发布。但我认为我的解决方案正是你想要的。
<div class="selectLine">
<select name="sq[]" >
<option value=""></option>
</select>
<select name="as[]" >
<option value=""></option>
</select></div>
<a id="addOption">
$('#addOption').click(function(){
$('.selectLine').last().after($('.selectLine').outerHtml());
$('.selectLine').last().prev().hide();
});
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>';
}
$('#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
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']);
?>