I've been struggling for a while:
This is part of my AJAX code:
<script>
function liked(button, dataset){
var element = button;
element.classList.toggle("liked");
var xhttp;
if (dataset == '') {
document.getElementById('like-count-' + dataset).innerHTML = "Null dataset!";
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState === 4 && xhttp.status === 200) {
document.getElementById('like-count-' + dataset).innerHTML = this.responseText;
}
};
xhttp.open('POST', '<?php echo base_url('update_like_count')?>', true);
xhttp.setRequestHeader('X-Requested-With', 'XMLHTTPRequest');
//var data = 'dataset_name=' + encodeURIComponent(dataset);
//var data = JSON.stringify({ dataset_name: dataset });
console.log(dataset);
xhttp.send('dataset_name='+dataset);
}
</script>
This is part of my PHP code:
public function update_like_count() {
//Debug
$dataset_name = $this->request->getPost('dataset_name');
echo "dataset: ".$dataset_name; // $dataset_name is null
if ($this->request->isAJAX()) {
$dataset_name = $this->request->getPost('dataset_name');
echo gettype($dataset_name);
if($dataset_name) {
$model = model('App\Models\Upload_model');
$model->update_like_count($dataset_name);
echo 'Success!';
} else {
echo 'Dataset not found!';
}
}
}
It seems the $dataset_name is always null on the server side. I'm appreciated for any help.