मेरे मॉडल पर मेरे पास निम्न कार्य है जो आंतरिक रूप से 3 तालिकाओं में शामिल होने के लिए एक प्रश्न है

function get_all_listaproveedorfamilia($clave)
{
    $this->db->select('proveedor.razonSocial, proveedor.nombre1, proveedor.telefonoFijo1, proveedor.telefonoMovil1, proveedor.correoElectronico1, proveedor.tipo, familia.clave');
    $this->db->from('proveedor');
    $this->db->join('relacionproveedorfamilia', 'relacionproveedorfamilia.idProveedor = proveedor.id', 'inner');
    $this->db->join('familia', 'familia.id = relacionproveedorfamilia.idFamilia', 'inner');
    $this->db->where('familia.clave', $clave);
    $this->db->order_by('proveedor.razonSocial');
    $query = $this->db->get();
    if($query->num_rows() > 0){
        return $query->result_array();
    }
}

$clave मान एक चुनिंदा ड्रॉपडाउन से पुनर्प्राप्त एक स्ट्रिंग है, और मैं इसे AJAX का उपयोग करके अपने नियंत्रक को भेजता हूं

मेरे विचार में Jquery समारोह $clave मूल्य भेजने के लिए

$('#idFamilia').change(function(){
        var clave = $("#idFamilia option:selected").text();

        if (clave != "Seleccione"){
            $.ajax({
                url: '<?php echo base_url(); ?>index.php/Proveedor/obtenerListaProveedorFamilia',
                method: 'POST',
                data: {
                    clave: clave
                }
            });
        }
    });

यहां मेरे नियंत्रक से कोड है, जहां मैं क्लेव मान का उपयोग करता हूं और मेरे नियंत्रक में फ़ंक्शन को कॉल करता हूं

function obtenerListaProveedorFamilia(){
    $this->load->model('Proveedormodel');
    $clave = $_POST['clave'];
    $data['listaproveedorfamilia'] = $this->Proveedormodel->get_all_listaproveedorfamilia($clave);
    $data['_view'] = 'proveedor/index';
    $this->load->view('layouts/main',$data);
}

मैं यह जांचने के लिए फ़ंक्शन द्वारा लौटाए गए सरणी को देखना चाहता हूं कि क्वेरी काम कर रही है और वे मान प्राप्त कर रहे हैं जिन्हें मैं पुनर्प्राप्त करना चाहता हूं। मैंने अपने jQuery फ़ंक्शन $('#idFamilia').change(function(){});

- दृश्य से सरणी प्राप्त करें और इसे ब्राउज़र के कंसोल पर जांचें

var test = <?php echo json_encode($listaproveedorfamilia); ?>;
console.log(test);

-प्रिंट_आर को प्री टैग में जोड़ने की कोशिश कर रहा है

$('#prueba').append('<?php print_r($listaproveedorfamilia) ?>');

दोनों विकल्पों के साथ मुझे अपने विचार पर निम्न PHP त्रुटि मिलती है:

A PHP Error was encountered
Severity: Notice
Message:  Undefined variable: listaproveedorfamilia
Filename: proveedor/index.php

जैसे ही पेज लोड होता है, यह त्रुटि दिखाई देती है, लेकिन इसे उपयोगकर्ता द्वारा चयन ड्रॉपडाउन से एक विकल्प का चयन करने के लिए प्रतीक्षा करनी चाहिए और फिर क्वेरी बनाने के लिए उस विकल्प का उपयोग करना चाहिए। मैं इसे कैसे ठीक कर सकता हूं और मेरी सरणी की सामग्री की जांच कर सकता हूं?

0
raptorandy 11 अप्रैल 2017, 21:48
नियंत्रक में var_dump($data['listaproveedorfamilia']); करने का प्रयास करें। वहाँ क्या दिखा रहा है?
 – 
Xidh
11 अप्रैल 2017, 21:53
मुझे खेद है, मैं नियंत्रक से var_dump कैसे कर सकता हूं? मैं आउटपुट कहां देख सकता हूं?
 – 
raptorandy
11 अप्रैल 2017, 22:06
$data['listaproveedorfamilia'] के निर्माण के ठीक बाद var_dump डालें और exit जोड़ें ताकि आप इसे पढ़ सकें
 – 
Xidh
12 अप्रैल 2017, 15:05

1 उत्तर

सबसे बढ़िया उत्तर

आपको अपने AJAX कॉल में सफलता विधि जोड़ने की आवश्यकता है। यह वह जगह है जहां सर्वर पर बनाया गया डेटा भेजा जाएगा।

$('#idFamilia').change(function () {
    var clave = $("#idFamilia option:selected").text();

    if (clave != "Seleccione") {
        $.ajax({
            url: '<?php echo base_url(); ?>index.php/Proveedor/obtenerListaProveedorFamilia',
            method: 'POST',
            data: {
                clave: clave
            },
            success: function (returned) {
                console.log(returned);
            }
        });
    }
});

जावास्क्रिप्ट कंसोल ने क्या लॉग किया है यह देखने के लिए आप अपने ब्राउज़र के वेब देव उपकरण का उपयोग कर सकते हैं।

क्योंकि हम नहीं जानते कि दृश्य फ़ाइल में क्या है, इस पर टिप्पणी करना कठिन है कि क्या उम्मीद की जाए।

आम तौर पर AJAX कॉल का उपयोग html को वापस करने के लिए किया जाता है जो वर्तमान ब्राउज़र स्क्रीन को अपडेट करने के लिए $("some_selector").html() या कई अन्य DOM मैनिपुलेशन विधियों का उपयोग करके DOM में लौटाया जाता है।

रिटर्न को "कल्पना" करने का एक और तरीका यह होगा कि इसे केवल स्क्रीन पर पहले से ही जोड़ दिया जाए। यह संभावना नहीं है कि आप अंततः क्या चाहते हैं। लेकिन आप देख पाएंगे कि क्या वापस आया।

सक्सेस फंक्शन को इसमें बदलें

success: function (returned) {
    $('body').append(returned);
}
0
DFriend 11 अप्रैल 2017, 22:47
धन्यवाद, मैं सरणी को देखने में सक्षम था और पृष्ठ के लिए संपूर्ण HTML कोड भी कॉन में दिखाया गया था, निश्चित नहीं कि क्यों, लेकिन कम से कम मुझे पता है कि क्वेरी काम करती है।
 – 
raptorandy
17 अप्रैल 2017, 20:59