私は自分のコードに問題があり、$_POST
何が起こっているのかを確認するために自分のコントローラーにあることを示すことができることを知りたいと思っていました:
私のjQuery
コードでは、私のajaxCall
関数は次の形式で構築されていますn ajaxCall(url, data_array, div_id, callback_fn)
私は正しいデータを表示しましたが、DBに保存されていないため、console.log(data_array);
内部で何が起こっているのかを確認することはできますか?callback_fn
すべてのコードがエラーなしで 200 を返したので、この質問に戻りました
Ajax コード:
$('body').on("click", "#product_save_youtube_btn", function (e) {
e.preventDefault();
var box = $("#product_youtube");
var id = box.data("id");
var url = box.data("url");
var data_array = {
id : id,
new_id : box.val(),
};
//console.log(data_array);
if($.trim(box.val()) != "")
{
ajaxCall(url, data_array, null, "update_product_youtube");
alert("Your You Tube ID Has Been Changed");
}
});
ajaxCall:
function ajaxCall(url, data_array, div_id, callback_fn) {
return $.ajax({
type:'POST',
url:url,
beforeSend: function(){
$("#" + div_id).html("<img src='http://www.domain.co.nz/files/large/ajax-loader.gif' alt='Loading..' title='Loading..'/>");
},
data:data_array,
complete:function (data) {
$("#" + div_id).html(data.responseText);
if(callback_fn != null)
{
eval(callback_fn + '()');
}
}
});
}
PHP コード - Callback_fn:
public function ajax_update_product_youtube()
{
if($_POST)
{
$id = intval($_POST['id']);
$new_id = mysqli_real_escpe_string(trim($_POST['new_id']));
if(empty($id))
{
$this->Ps_products_model->update_product_youtube($id, $new_id);
}
}
}
モデル:
public function update_product_youtube($table, $id, $new_id)
{
$table = $this->_table_products;
$this->db->query("UPDATE {$table} SET youtube = ? WHERE id = ?", array($new_id, $id));
}