[英]Storing the JavaScript variable in a PHP variable to use it for dynamic meta description in source page
我已經在CI中提出了AJAx請求。 該請求正在從數據庫中獲取數據,並將其顯示在同一頁面上。 我需要創建動態元描述。 我需要在元描述中使用數據庫中的一個字段值的地方,因此一旦查看頁面源,它就必須出現在視圖頁面源中。
我想將javascript變量存儲在php變量中,因此一旦打開源頁面,就可以輕松地在我的描述中顯示它。 有什么方法可以在視圖頁面源代碼中或使用php使用javascript變量進行元描述。
視圖:
$('#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的單個字段,那么它也可能會有所幫助。 我被困在這里...
如果我正確理解,則在執行上述請求時,您希望動態更新元數據。 您的腳本中有一個ajax調用,該調用僅返回一個對象,您可以按如下所示在請求中發送元數據信息。
在您的控制器文件中
public function getBranchDetail(){
$branchData = array();
$branchData['meta_title'] = 'Your meta title here';
$branchData['meta_description'] = 'Your meta description here';
$branchData['members'] = array();// good practice to setup default
$city_id = $this->input->post('city_id');
if($city_id){
$con['conditions'] = array('id'=>$city_id);
$branchData['members'] = $this->Bank_model->getBranchData($con);
}
echo json_encode($branchData);
}
在你的ajax電話中
$.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
});
}
});
我創建了一個關聯數組,在您的ajax調用中分配了值。
編輯:
您的html應該包含這些值
<html>
<head>
<title>Your Title</title>
<meta name="description" content="meta desription">
.....
</head>
<body>
.....
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.