Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अजाक्स के साथ डेटाटेबल सर्वरसाइड का उपयोग करने के बाद अच्छी तरह से काम नहीं कर रहा है:सच

डेटाटेबल्स आपको जो कुछ भी चाहिए उसे भेजते हैं - यदि आप नेटवर्क के तहत अपने कंसोल में एक नज़र डालते हैं, तो आप देखेंगे कि वे सर्वर पर उन अनुरोधों को भेजने के लिए AJAX-get विधि का उपयोग करते हैं

GET पैरामीटर इस प्रकार हैं

draw
columns
start
length
search

जिसका अर्थ है - आपको अपने मॉडल को ठीक से अनुकूलित करना होगा...

ऐसा कुछ काम करना चाहिए

public function all_user_request($task_id) 
{
    $intStart = intval($this->input->get("start"));
    $intLength = intval($this->input->get("length"));
    $strSearch = (strlen($this->input->get("search")["value"]) >= 2) ?   $this->input->get("search",true)["value"]    :   false;
    $order = $this->input->get("order",true);


    $this->setQuery($task_id,$strSearch);

    $query = $this->db->get();
    $this->recordsTotal = $query->num_rows();

    $this->setQuery($task_id, $strSearch);

    if ($intStart >= 0 && $intLength > 0)
    {
        $this->db->limit($intLength,$intStart);
    }

    $strOrderField = 'username';
    $strDirection = "ASC";
    if (is_array($order))
    {
        switch($order[0]['column'])
        {
            case 1:
                $strOrderField = 'type';
                break;
            case 2:
                $strOrderField = 'request';
                break;

        }
        if (!empty($order[0]['dir']))    $strDirection = $order[0]['dir'];
    }
    $this->db->order_by($strOrderField,$strDirection);


    $query = $this->db->get();

    $arrData = $query->result();

    return $arrData;

}

public function getRecordsTotal()
{
    return $this->recordsTotal;
}

private function setQuery($task_id, $strSearch="")
{
    $this->db
        ->select('*')
        ->from('user_request')
        ->where('task_id', $task_id);

    if (!empty($strSearch))
    {
        $this->db->like('task_id', $strSearch);
    }

}

और आपका नियंत्रक

//controller
$task = $this->input->post('task', TRUE);
$user_request = $this->model->all_user_request($task);

$data = [];
foreach ($user_request as $ur)
{
    $data[] = [
        $ur->username,
        $ur->type,
        $ur->request
    ];
}

$arrCompiledData = [
    'data' => $data,
    'draw' => $this->input->get('draw'),
    'recordsTotal' => $this->model->getRecordsTotal(),
    'recordsFiltered' => $this->model->getRecordsTotal(),
];

$this->output
    ->set_content_type('application/json')
    ->set_output(json_encode($arrCompiledData));

कृपया ध्यान रखें कि मैंने इसे अभी लिखा है - शायद कुछ टाइपो हैं, लेकिन आपको यह समझने में सक्षम होना चाहिए कि डेटाटेबल्स अनुरोध की सर्वरसाइड प्रोसेसिंग कैसे काम करनी चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्ट php mysql . के लिए कीवर्ड विभाजित करें

  2. उबंटू पर mysql रत्न स्थापित करने में कठिनाइयाँ

  3. MySQL में कॉलम मानों की अदला-बदली

  4. जांचें कि क्या आईपी सबनेट में है

  5. MySQL से कैसे चुनें जहां टेबल का नाम वेरिएबल है