Хранение переменной JavaScript в переменной PHP для использования ее для динамического мета-описания на исходной странице - PullRequest
0 голосов
/ 18 октября 2018

Я сделал запрос AJAx в CI.Этот запрос извлекает данные из базы данных и отображает их на той же странице.Мне нужно создать динамическое мета-описание.Где мне нужно использовать одно значение поля из базы данных в моем мета-описании, поэтому после просмотра источника страницы оно должно появиться в источнике просмотра страницы.

Я хотел сохранить переменную javascript в переменной php, поэтому после открытияИсходная страница, которую я могу легко отобразить в моем описании.Есть ли способ использовать переменную javascript для описания мета в исходной странице просмотра или с помощью php.

View:

$('#city').on('change',function(){
                 var branchName=  $('#city option:selected').html();
                 $('#branchSel').html('<span><b>Branch Name: </b></span>'+branchName).addClass("appear");
                 var stateName=  $('#state option:selected').html().toLowerCase();
                 var countryName=  $('#country option:selected').html().toLowerCase();
                 countryName = countryName.replace(/\s+/g, '-');
                 stateName = stateName.replace(/\s+/g, '-');
                 branchName = branchName.replace(/\s+/g, '-').toLowerCase();                                       
                    var cityID = $(this).val();
                        if(cityID){
                        window.history.pushState('', '', '<?php echo base_url($bank_rename.'/ifsc-code'); ?>/'+countryName+'/'+stateName+'/'+branchName);
                        $.ajax({
                            type:'POST',
                            url:'<?php echo base_url('bank/getBranchDetail'); ?>',
                            data:'city_id='+cityID,
                             success:function(data){
                                $('#dataDisplay').remove();
                                $('#ifsc').html("").removeClass("appear");
                                $('#micr').html("").removeClass("appear");
                                $('#contact').html("").removeClass("appear");
                                $('#address').html("").removeClass("appear");
                                var dataObj = jQuery.parseJSON(data);
                                    $(dataObj).each(function(){
                                        var ifsc = $('#ifsc').html("<span><b>IFSC Code: </b></span>");
                                        var micr = $('#micr').html("<span><b>MICR Code: </b></span>");
                                        var contact = $('#contact').html("<span><b>Contact No: </b></span>");
                                        var address = $('#address').html("<span><b>Address: </b></span>");
                                        ifsc.append(this.ifsc_code).addClass("appear");
                                        var ab= this.ifsc_code;
                                        micr.append(this.micr_code).addClass("appear");
                                        contact.append(this.contact_no).addClass("appear");
                                        address.append(this.address).addClass("appear");
                                        $('#branch_code').html('<span><b>Branch Code: </b></span>Last six characters of IFSC Code represent Branch code.');

                                    });
                            }
                        }); 
                        }else {
                           window.history.pushState('', '', '<?php echo base_url($bank_rename.'/ifsc-code'); ?>/'+countryName+'/'+stateName);
                           $('#dataDisplay').html('Select State, District, Branch Name to Display Details Here'); 
                           $('#branch_code').html("").removeClass("appear");
                           $('#ifsc').html("").removeClass("appear");
                           $('#micr').html("").removeClass("appear");
                           $('#contact').html("").removeClass("appear");
                           $('#address').html("").removeClass("appear");
                        }
                });
        });

HTML-код:

<td><p id="ifsc"></p></td>

Контроллер:

public function getBranchDetail(){
    $branch = array();
    $city_id = $this->input->post('city_id');
    if($city_id){
        $con['conditions'] = array('id'=>$city_id);
        $branchData = $this->Bank_model->getBranchData($con);
    }
    echo json_encode($branchData);
}

Модель:

function getBranchData($params = array()){
    $this->db->select('c.micr_code, c.ifsc_code, c.contact_no, c.address');
    $this->db->from($this->branchTbl.' as c');

    //fetch data by conditions
    if(array_key_exists("conditions",$params)){
        foreach ($params['conditions'] as $key => $value) {
            if(strpos($key,'.') !== false){
                $this->db->where($key,$value);
            }else{
                $this->db->where('c.'.$key,$value);
            }
        }
    }

    $query = $this->db->get();
    $result = ($query->num_rows() > 0)?$query->result_array():FALSE;

    //return fetched data
    return $result;
}

Если кто-нибудь подскажет, как получить доступ только к одному полю базы данных ifsc_code на странице просмотра, то это также может быть полезно.Я застрял здесь ...

1 Ответ

0 голосов
/ 19 октября 2018

Если я правильно понял, вы хотели бы динамически обновлять метаданные, когда вы делаете выше запроса.У вас есть вызов Ajax в сценарии, который возвращает только один объект, вы можете вместо этого послать информацию о метаданных в запросе следующим образом.

1002 * в контроллере файл 1004

и в вашем Аяксазвоните

$.ajax({
    type:'POST',
    url:'<?php echo base_url('bank/getBranchDetail'); ?>',
    data:'city_id='+cityID,
    success:function(data){
        var dataObj = jQuery.parseJSON(data);
        document.title = dataObj.meta_title; // set document title
        $('meta[name=description]').attr('content',dataObj.meta_description;); // set meta description
        $(dataObj.members).each(function(){
        //... your other code
        });
    }
});

Я создал ассоциативный массив, значения присваиваемые в вашем АЯКС вызова

1010 * Edit:. 1014 * ваш HTML должен содержатьэти значения 1016 *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...