【发布时间】:2018-03-15 15:21:12
【问题描述】:
我想通过 ajax 发送下拉列表和复选框值,并在控制器中将下拉值存储在会话中,并将其与复选框值一起使用,但这不起作用。我希望在选择下拉列表时显示其值,但当选中复选框,然后将显示下拉列表和复选框的值。
这是我的下拉菜单和复选框
<select class="product-sort-select" onchange ="showUser1(this.value)">
<option value="" selected="selected">Sort By</option>
<option value="byname"> name</option>
<option value="bydate"> date</option>
<option value="bypopularity"> popularity</option>
</select>
<li class="checkbox">
<label>
<input type="checkbox" class="cb" id="featured" name="chk[]" onchange="cbChange(this); showUser()" value="featured">Featured <small><?= "(".$featuredeals_count.")";?></small>
</label>
</li>
这是我正在使用的 ajax
function showUser1(strr) {
if (strr == "")
{
document.getElementById("txtHint").innerHTML = "";
return;
}
else
{
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","Search/sorted_deals?strr="+strr,true);
xmlhttp.send();
}
}
function showUser() {
var str = []
var checkboxes = document.querySelectorAll('input[type=checkbox]:checked')
for (var i = 0; i < checkboxes.length; i++)
{
str.push(checkboxes[i].value)
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200)
{
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","Search/sorted_deals?str="+JSON.stringify(str),true);
xmlhttp.send();
}
这是我在控制器中的功能
$_SESSION['variable']=$this->input->get('strr');
$variable=$_SESSION['variable'];
if($variable=="byname")
{
echo $_SESSION['variable'];
//$user_search=$this->Deals->sort_by_name($deal_name,$city_id,$city_status);
}
$variables = json_decode($this->input->get("str"));
for ($a = 0; $a < count ($variables); $a++)
{
if($variables[$a]=="featured")
{
echo $variables[$a];
echo $_SESSION['variable'];
}
}
【问题讨论】:
-
你添加了会话库吗??
标签: javascript php ajax codeigniter