У меня есть выпадающий список, который вызывает функцию js:
<select class="form-control" name="product" id="product" onchange="populateProductLine(this.value)">
<option selected="selected" value="" disabled="">Select Product</option>
<?php foreach ($products as $product) { ?>
<option value="<?=$product['productId']?>"><?=$product['productName']; ?></option>
<?php } ?>
</select>
Затем функция js использует ajax для вызова метода контроллера:
function populateProductLine(productId) {
if (productId == '') {
//document.getElementById("chargeable").value = "";
} else {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
console.log(myObj);
}
};
xmlhttp.open("GET","<?php echo base_url(); ?>products/getproduct(" + productId + ")",true);
xmlhttp.send();
}
}
метод контроллера (пока просто фиктивные данные):
public function getproduct($product_id) {
$myArr = array("John", "Mary", "Peter", "Sally");
$myJSON = json_encode($myArr);
echo $myJSON;
}
Почему я получаю ошибку 400 (неверный запрос)? Я использую Codeigniter.