我有一个带有另一个提交输入的选择输入。我希望将所选值存储在php数组中,每次单击提交输入而不重新加载页面。 在点击添加每次它将存储选择输入的值在PHP数组中。 在第一次单击时,数组将只有一个值,然后在第二次单击时添加php数组将有2个值。
因为我用ajax尝试过,但是当我点击两次然后只有第二个值存储时,第一个值被第二个值替换。但我想要数组中的两个值。 这是我的代码: HTML:
<select id = "exam-list" name = "exam_name">
<option value="1">Opt 1</option>
<option value="2">Opt 2</option>
<option value="3">Opt 3</option>
</select>
<input class="btn btn-primary" onclick="save_exam()" type="submit" name="submit" value="add"/>
Js代码:
function save_exam() {var val = document.getElementById('exam-list').value;$.ajax({type: "POST",url: "store_exam.php",datatype: "json",data: 'exam_id=' + val,success: function (data) { }});}
PHP代码:
<?php $count = count($_POST['exam']);for ($i = 0; $i < $count; $i++) {print_r($_POST['exam']);}?>
答案 0 :(得分:2)
每次点击该数组后,在session
put值中创建一个数组。没有其他方式我认为可以在点击事件后存储每个值。
<?php
$count = count($_POST['exam']);
for ($i = 0; $i < $count; $i++)
{
$_SESSION['exam'] = $_POST['exam'];
}
?>
像这样。
答案 1 :(得分:1)
要保存所选值而不刷新页面,您必须使用AJAX,过程将类似于:
<强> HTML:强>
<form id="form_id">
<select id = "exam-list" name = "exam_name">
<option value="1">Opt 1</option>
<option value="2">Opt 2</option>
<option value="3">Opt 3</option>
</select>
<input class="btn btn-primary" type="submit" name="submit" value="add"/>
</form>
注意:将您的选择包装在form
标记
JavaScript:
<script>
$('.btn').on('click',function(e) {
e.preventDefault();
var form_date=$('#form_id' ).serializeArray();
$.ajax({
url: "ajax.php",
method: 'GET',
data: form_date,
success: function(response) {
console.log(response);
}
});
});
</script>
在ajax.php或其他任何名称上,您将收到$ _GET传递数据数组(实际上是表单数据)。
<强> ajax.php 强>
<?php
$data=$_GET;
# You will receive a array like this
#Array(
# [exam_name] => 1
#)
//Do something with the data
答案 2 :(得分:0)
要存储多个值,您应将值存储在session
或cookie
数组中。