Merge branch 'master' of github.com:hainatravel/information-system

hotfix/paypal-note
赵鹏 2 years ago
commit c860d496f7

@ -985,14 +985,8 @@ class Information extends CI_Controller
public function test_feedback() public function test_feedback()
{ {
$feedback_newest = $this->Feedback_model->get_feedback_newest(); $feedback_newest = $this->Feedback_model->test_feedback_newest();
var_dump($feedback_newest); var_dump($feedback_newest);
$feedback_newest_content = $this->load->view(
'ch-feedback-newest',
array('feedback_list' => $feedback_newest),
true);
var_dump($feedback_newest_content);
} }
public function test_price() public function test_price()
@ -1094,7 +1088,7 @@ class Information extends CI_Controller
} }
} }
} }
$site_money = $this->currency->calc_show_price($site_money); $site_money = $this->currency->calc_show_price($price_number);
//把金额格式化为带有逗号(,)方便阅读,如 12,345 //把金额格式化为带有逗号(,)方便阅读,如 12,345
$price_number = is_numeric($price_number) ? number_format($site_money) : $price_number; $price_number = is_numeric($price_number) ? number_format($site_money) : $price_number;
if (!empty($price_number)) { if (!empty($price_number)) {
@ -1673,30 +1667,6 @@ class Information extends CI_Controller
file_put_contents($html_path, $template, LOCK_EX); file_put_contents($html_path, $template, LOCK_EX);
} }
public function test_ah_feedback()
{
$feedback_array = [];
preg_match_all('^<!--@FEEDBACK_(.*)@-->^', '<div><!--@FEEDBACK_Siem Reap,Bangkok@--></div>', $feedback_array);
if (!empty($feedback_array)) {
foreach ($feedback_array[0] as $index => $tag_name) {
$city_name_string = $feedback_array[1][$index];
$city_name_list = explode(',', $city_name_string);
$feedback_list = $this->Feedback_model->get_feedback_by_city_list($city_name_list);
var_dump($feedback_list);
$feedback_content = $this->load->view(
'mobile_first/ah' . '-feedback-list',
array('feedback_list' => $feedback_list),
true
);
echo $feedback_content;
// $information->ic_content = str_replace(
// $tag_name,
// $feedback_content,
// $information->ic_content);
}
}
}
/** /**
* @description: CT用的生成静态文件方法.有些内容的替换CT这边不一样需要单独处理 zp * @description: CT用的生成静态文件方法.有些内容的替换CT这边不一样需要单独处理 zp
* @param {type} $device='mobile' or 'pc' * @param {type} $device='mobile' or 'pc'

@ -14,7 +14,7 @@ class Feedback_model extends CI_Model {
$feedback_query = $feedback_query =
$this->HT->query(" $this->HT->query("
select top 20 select top 40
tad_content, tai_customerid, tai_title, tai_getdate, tai_url tad_content, tai_customerid, tai_title, tai_getdate, tai_url
from Eva_TAInfo from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN left join Eva_TADetail on TAD_TAI_SN=TAI_SN
@ -23,11 +23,13 @@ class Feedback_model extends CI_Model {
$feedback_result = $feedback_query->result(); $feedback_result = $feedback_query->result();
$feedback_list = []; $feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) { foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate); $createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y'); $createdOnString = $createdOn->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [ $feedback = [
'title' => $feedback_row->tai_title, 'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid, 'customer' => $feedback_row->tai_customerid,
@ -36,6 +38,43 @@ class Feedback_model extends CI_Model {
'createdOn' => $createdOnString 'createdOn' => $createdOnString
]; ];
$feedback_list[] = $feedback; $feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
}
return $feedback_list;
}
function test_feedback_newest() {
$feedback_query =
$this->HT->query("
select top 40
tad_content, tai_customerid, tai_title, tai_getdate, tai_url
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
where TAD_Content is not null
order by tai_getdate desc");
$feedback_result = $feedback_query->result();
$feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [
// 'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
// 'content' => $feedback_row->tad_content,
// 'url' => $feedback_row->tai_url,
// 'createdOn' => $createdOnString
];
$feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
} }
return $feedback_list; return $feedback_list;
@ -48,7 +87,7 @@ class Feedback_model extends CI_Model {
$feedback_query = $feedback_query =
$this->HT->query(" $this->HT->query("
select top 20 select top 40
tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name tad_content, tai_customerid, tai_title, tai_getdate, tai_url, vci.cii2_name
from Eva_TAInfo from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN left join Eva_TADetail on TAD_TAI_SN=TAI_SN
@ -60,11 +99,14 @@ class Feedback_model extends CI_Model {
$first_city_num = $feedback_query->num_rows(); $first_city_num = $feedback_query->num_rows();
$feedback_result = $feedback_query->result(); $feedback_result = $feedback_query->result();
$feedback_list = []; $feedback_list = [];
$customer_id_list = [];
foreach ($feedback_result as $feedback_row) { foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate); $createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y'); $createdOnString = $createdOn->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [ $feedback = [
'title' => $feedback_row->tai_title, 'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid, 'customer' => $feedback_row->tai_customerid,
@ -73,9 +115,11 @@ class Feedback_model extends CI_Model {
'createdOn' => $createdOnString 'createdOn' => $createdOnString
]; ];
$feedback_list[] = $feedback; $feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
} }
$enough_count = 20 - $first_city_num; $enough_count = 40 - $first_city_num;
if ($enough_count > 0 && count($city_name_list) > 1) { if ($enough_count > 0 && count($city_name_list) > 1) {
@ -94,7 +138,9 @@ class Feedback_model extends CI_Model {
foreach ($feedback_result as $feedback_row) { foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate); $createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y'); $createdOnString = $createdOn->format('M Y');
$feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [ $feedback = [
'title' => $feedback_row->tai_title, 'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid, 'customer' => $feedback_row->tai_customerid,
@ -103,6 +149,8 @@ class Feedback_model extends CI_Model {
'createdOn' => $createdOnString 'createdOn' => $createdOnString
]; ];
$feedback_list[] = $feedback; $feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid;
}
} }
} }

@ -6,13 +6,15 @@
<h3 style="text-align: center; font-size: 20px; line-height: 22px;">Start planning your tailor-made tour now. Your 1:1 travel consultant will reply within 1 working day.</h3> <h3 style="text-align: center; font-size: 20px; line-height: 22px;">Start planning your tailor-made tour now. Your 1:1 travel consultant will reply within 1 working day.</h3>
<form action="/orders/quick_inquiry_save" method="post" novalidate="" id="info_page_form"> <form action="/orders/quick_inquiry_save" method="post" novalidate="" id="info_page_form">
<textarea id="form_additionalrequirements" name="additional_requirements" placeholder="E.g.: <textarea id="form_additionalrequirements" name="additional_requirements" placeholder="E.g. This is a big trip for my birthday, anniversary, honeymoon, retirement, kid's graduation, bucket list
This is a big trip for: birthday, anniversary, honeymoon, retirement, kid's graduation, bucket list..." style="height:70px;"></textarea> Our must-dos/must-sees are…" style="height:90px;"></textarea>
<!--
<div class="selectionBlock"> <div class="selectionBlock" style="margin-bottom: 10px;">
<h4> <p style="
Number in your group margin-bottom: 0px;
</h4> ">
<strong>Number in your group</strong>
</p>
<div id="group_error_msg" style="display: none"> <div id="group_error_msg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please select number in your group.</div> <div class="requiredArea" style="margin-top:-10px;">Please select number in your group.</div>
</div> </div>
@ -42,13 +44,10 @@ This is a big trip for: birthday, anniversary, honeymoon, retirement, kid's grad
</div> </div>
<div id="adultBlock" style="display: none"> <div id="adultBlock" style="display: none">
<p style="
margin-bottom: 0;
font-size: 22px;
margin-top: 20px;
">When you plan to take the trip:</p>
<div class="peopleSelect"> <div class="peopleSelect">
<p style="margin-top: 20px;"><strong> <p style=" margin-top: 10px;
margin-bottom: 10px;"><strong>
Adults (≥18 years old) Adults (≥18 years old)
</strong> </p> </strong> </p>
<button class="minaddBtn reduceadult" id="minusAdult" type="button" <button class="minaddBtn reduceadult" id="minusAdult" type="button"
@ -89,7 +88,7 @@ This is a big trip for: birthday, anniversary, honeymoon, retirement, kid's grad
</div> </div>
<div class="clear"></div> <div class="clear"></div>
<div id="childrenBlock" style="display: none"> <div id="childrenBlock" style="display: none">
<p style="margin-top: 0;"><strong>Children</strong></p> <p style=" margin-top: -10px; margin-bottom: 5px;"><strong>Children (age of children at time of trip)</strong></p>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p> <p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs"> <select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs">
@ -139,7 +138,48 @@ This is a big trip for: birthday, anniversary, honeymoon, retirement, kid's grad
</div> </div>
</div> </div>
-->
<div class="selectionBlock">
<p style=" margin-top: 10px;
margin-bottom: 0;"><strong>
When would you travel?
</strong></p>
<div class="travel_group date_select" >
<input type="radio" value="exact travel dates" id="exact" name="trip_date">
<label for="exact" class="updatedestination" style="font-size: 18px;">
Exact travel dates
</label>
</div>
<div class="travel_group date_select" >
<input type="radio" value="approximate travel dates" id="approximate" name="trip_date">
<label for="approximate" class="updatedestination" style="font-size: 18px;">
Approximate travel dates
</label>
</div>
<div class="travel_group date_select" >
<input type="radio" value="haven't decided travel dates" id="yet" name="trip_date">
<label for="yet" class="updatedestination" style="font-size: 18px;">
Not decided travel dates
</label>
</div>
<div class="trip_date_length" id="tripDateBlock" style="display: none">
<p style="margin-bottom: 10px;">Select your travel date and trip length (days).</p>
<div id='dateSelectionBlock'>
<input type="text" class="arrivalDate datepicker" id="Date_Start" name="date_start" value="" placeholder="mm/dd/yyyy" autocomplete="off" style="width: auto; float: left; margin-right: 15px;">
<input type="month" id="expectedMonth" name="expected_month" placeholder="Select your expected travel date." style="width: auto; float: left; margin-right: 15px;">
</div>
<div class="peopleSelect">
<div class="numberBtn">
<input class="minaddBtn" id="tripLengthMinus" type="button" value="-">
<input class="number" type="text" value="14" id="tripLengthNumber" name="trip_length">
<input class="minaddBtn" id="tripLengthPlus" type="button" value="+">
</div>
</div>
</div>
</div>
<input class="FullName" id="realname" name="name" placeholder="Your name *" required="" type="text" value="" /> <input class="FullName" id="realname" name="name" placeholder="Your name *" required="" type="text" value="" />
<div id="realname_errmsg" style="display: none"> <div id="realname_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please enter your name</div> <div class="requiredArea" style="margin-top:-10px;">Please enter your name</div>
@ -152,12 +192,7 @@ This is a big trip for: birthday, anniversary, honeymoon, retirement, kid's grad
<div id="email_verify_errmsg" style="display: none"> <div id="email_verify_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please verify your email</div> <div class="requiredArea" style="margin-top:-10px;">Please verify your email</div>
</div> </div>
<!--
<input class="InquiryCalendar" id="starting_date" name="date_start" placeholder="Starting date *" readonly="readonly" />
<div id="starting_date_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please enter your starting date</div>
</div>
-->
<select name="country_code" class="country_code"> <select name="country_code" class="country_code">
<option style="font-weight: 600;" value="United States +1">United States&nbsp; &nbsp;+1</option> <option style="font-weight: 600;" value="United States +1">United States&nbsp; &nbsp;+1</option>
<option style="font-weight: 600;" value="United Kingdom +44">United Kingdom&nbsp; &nbsp;+44</option> <option style="font-weight: 600;" value="United Kingdom +44">United Kingdom&nbsp; &nbsp;+44</option>
@ -456,9 +491,11 @@ This is a big trip for: birthday, anniversary, honeymoon, retirement, kid's grad
--> -->
</div> </div>
<script src="https://data.asiahighlights.com/min/?f=/js/jquery-1.8.2.min.js,/js/flatpickr-4.6.1.min.js"></script> <script src="https://data.asiahighlights.com/min/?f=/js/jquery-1.8.2.min.js,/js/flatpickr-4.6.1.min.js"></script>
<script> <script>
document.addEventListener('DOMContentLoaded', () => {
var selectedExpectedDate = '';
document.addEventListener('DOMContentLoaded', () => {
flatpickr("#starting_date", { flatpickr("#starting_date", {
dateFormat: "Y-m-d", dateFormat: "Y-m-d",
altInput: true, altInput: true,
@ -467,15 +504,15 @@ document.addEventListener('DOMContentLoaded', () => {
minDate: "today" minDate: "today"
}); });
var info_page_button = document.getElementById("info_page_button"); var quick_inquiry_button = document.getElementById("quick_inquiry_button");
var info_page_form = document.getElementById("info_page_form"); var quick_inquiry_form = document.getElementById("quick_inquiry_form");
info_page_button.addEventListener('click', function(event) { quick_inquiry_button.addEventListener('click', function(event) {
var validateResult = validateQuickInquiryForm(); var validateResult = validateQuickInquiryForm();
if (validateResult) { if (validateResult) {
if (typeof(grecaptcha) === "undefined") { if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.'); console.warn('grecaptcha is disabled.');
info_page_form.submit(); quick_inquiry_form.submit();
} else { } else {
grecaptcha.enterprise.ready(async () => { grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'}); const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
@ -483,48 +520,63 @@ document.addEventListener('DOMContentLoaded', () => {
el.type = "hidden"; el.type = "hidden";
el.name = "__grecaptcha_token__"; el.name = "__grecaptcha_token__";
el.value = token; el.value = token;
info_page_form.appendChild(el); quick_inquiry_form.appendChild(el);
info_page_form.submit(); quick_inquiry_form.submit();
info_page_button.innerText = "Submitted successfully"; quick_inquiry_button.innerText = "Submitted successfully";
}); });
} }
} }
}); });
});
}); function validateQuickInquiryForm() {
function validateQuickInquiryForm() {
var result = true; var result = true;
var realnameVal = document.getElementById("realname").value; var realnameVal = document.getElementById("realname").value;
var emailVal = document.getElementById("email").value; var emailVal = document.getElementById("email").value;
// var startingDateVal = document.getElementById("starting_date").value; var expectedDateVal = document.getElementById("starting_date").value;
var expectedMonthVal = document.getElementById("expectedMonth").value;
var contactVal = document.getElementById("PhoneNo").value; var contactVal = document.getElementById("PhoneNo").value;
var realnameErrEl = document.getElementById("realname_errmsg"); var realnameErrEl = document.getElementById("realname_errmsg");
var emailErrEl = document.getElementById("email_errmsg"); var emailErrEl = document.getElementById("email_errmsg");
var emailVerifyErrEl = document.getElementById("email_verify_errmsg"); var emailVerifyErrEl = document.getElementById("email_verify_errmsg");
// var startingDateErrEl = document.getElementById("starting_date_errmsg"); var startingDateErrEl = document.getElementById("date_error_msg");
var contactErrEl = document.getElementById("contact_errmsg"); var contactErrEl = document.getElementById("contact_errmsg");
// var groupErrEl = document.getElementById("group_error_msg"); var groupErrEl = document.getElementById("group_error_msg");
realnameErrEl.style.display = 'none'; realnameErrEl.style.display = 'none';
emailErrEl.style.display = 'none'; emailErrEl.style.display = 'none';
emailVerifyErrEl.style.display = 'none'; emailVerifyErrEl.style.display = 'none';
// startingDateErrEl.style.display = 'none'; startingDateErrEl.style.display = 'none';
contactErrEl.style.display = 'none'; contactErrEl.style.display = 'none';
// groupErrEl.style.display = 'none'; groupErrEl.style.display = 'none';
// var travel_group_is_checked = false; var travel_group_is_checked = false;
// document.querySelectorAll('input[name="travel_group"]').forEach(function(groupNode) { document.querySelectorAll('input[name="travel_group"]').forEach(function(groupNode) {
// if (groupNode.checked) { if (groupNode.checked) {
// travel_group_is_checked = true; travel_group_is_checked = true;
// } }
// }); });
// if (travel_group_is_checked === false) { if (travel_group_is_checked === false) {
// groupErrEl.style.display = ''; groupErrEl.style.display = '';
// result = false; result = false;
// } }
var tripDate_is_checked = false;
if (selectedExpectedDate === 'exact') {
tripDate_is_checked = expectedDateVal !== '';
} else if (selectedExpectedDate === 'approximate') {
tripDate_is_checked = expectedMonthVal !== '';
} else if (selectedExpectedDate === 'yet') {
tripDate_is_checked = true;
}
//时间选择
if (!tripDate_is_checked) {
startingDateErrEl.style.display = '';
result = false;
}
if (realnameVal === '') { if (realnameVal === '') {
realnameErrEl.style.display = ''; realnameErrEl.style.display = '';
@ -540,96 +592,134 @@ function validateQuickInquiryForm() {
result = false; result = false;
} }
} }
// if (startingDateVal === '') {
// startingDateErrEl.style.display = '';
// result = false;
// }
if (contactVal === '') { if (contactVal === '') {
contactErrEl.style.display = ''; contactErrEl.style.display = '';
result = false; result = false;
} }
return result; return result;
} }
</script> </script>
<script>
<script> $(function () {
// var $adultBlock = $('#adultBlock'); var $adultBlock = $('#adultBlock');
// var $childrenBlock = $('#childrenBlock'); var $childrenBlock = $('#childrenBlock');
// var $adultNumberInput = $('#adultNumber'); var $adultNumberInput = $('#adultNumber');
// var adultNumber = $adultNumberInput.val(); var adultNumber = $adultNumberInput.val();
// var $teenagerNumberInput = $('#teenagerNumber'); var $teenagerNumberInput = $('#teenagerNumber');
// var teenagerNumber = $teenagerNumberInput.val(); var teenagerNumber = $teenagerNumberInput.val();
// var $childrenNumberInput = $('#childrenNumber'); var $childrenNumberInput = $('#childrenNumber');
// var childrenNumber = $childrenNumberInput.val(); var childrenNumber = $childrenNumberInput.val();
// var $infantNumberInput = $('#infantNumber'); var $infantNumberInput = $('#infantNumber');
// var infantNumber = $infantNumberInput.val(); var infantNumber = $infantNumberInput.val();
// $('input[name="travel_group"]').each((i, groupEle) => { $('input[name="travel_group"]').each((i, groupEle) => {
// $(groupEle).click(function (e) { $(groupEle).click(function (e) {
// $teenagerNumberInput.val(0); $teenagerNumberInput.val(0);
// $childrenNumberInput.val(0); $childrenNumberInput.val(0);
// $infantNumberInput.val(0); $infantNumberInput.val(0);
// var currentTarget = e.currentTarget; var currentTarget = e.currentTarget;
// if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) { if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) {
// $adultBlock.show(); $adultBlock.show();
// $childrenBlock.show(); $childrenBlock.show();
// } else { } else {
// $adultBlock.show(); $adultBlock.show();
// $childrenBlock.hide(); $childrenBlock.hide();
// } }
// if (currentTarget.id === 'Couple') { if (currentTarget.id === 'Couple') {
// $adultNumberInput.val(2); $adultNumberInput.val(2);
// } else if (currentTarget.id === 'Solo') { } else if (currentTarget.id === 'Solo') {
// $adultNumberInput.val(1); $adultNumberInput.val(1);
// } }
// }) })
// }); });
var $tripDateBlock = $('#tripDateBlock');
// //成人 var $expectedDate = $('#Date_Start');
// $('#plusAdult').click(function () { var $expectedMonth = $('#expectedMonth');
// adultNumber++; var $dateSelectionBlock = $('#dateSelectionBlock');
// $adultNumberInput.val(adultNumber); var $expectedTravelDateBlock = $('#expectedTravelDateBlock');
// }); var selectedExpectedDate = '';
// $('#minusAdult').click(function () { $('input[name="trip_date"]').each((i, tripDateEle) => {
// if (adultNumber > 1) { $(tripDateEle).click(function (e) {
// adultNumber--; $expectedDate.val('');
// $adultNumberInput.val(adultNumber); $expectedMonth.val('');
// } $tripDateBlock.show();
// }); var selectedTripDate = e.currentTarget;
// // 青少年 selectedExpectedDate = selectedTripDate.id;
// $('#plusTeenager').click(function () { if (selectedTripDate.id === 'exact') {
// teenagerNumber++; $dateSelectionBlock.show();
// $teenagerNumberInput.val(teenagerNumber); $expectedTravelDateBlock.hide();
// }); $expectedMonth.hide();
// $('#minusTeenager').click(function () { $expectedDate.show();
// if (teenagerNumber > 0) { } else if (selectedTripDate.id === 'approximate') {
// teenagerNumber--; $dateSelectionBlock.show();
// $teenagerNumberInput.val(teenagerNumber); $expectedTravelDateBlock.hide();
// } $expectedDate.hide();
// }); $expectedMonth.show();
// // 儿童 } else if (selectedTripDate.id === 'yet') {
// $('#plusChildren').click(function () { $dateSelectionBlock.hide();
// childrenNumber++; $expectedTravelDateBlock.show();
// $childrenNumberInput.val(childrenNumber); }
// }); })
// $('#minusChildren').click(function () { });
// if (childrenNumber > 0) {
// childrenNumber--; var tripLength = $('#tripLengthNumber').val();
// $childrenNumberInput.val(childrenNumber);
// } //成人
// }); $('#plusAdult').click(function () {
// // 婴儿 adultNumber++;
// $('#plusInfant').click(function () { $adultNumberInput.val(adultNumber);
// infantNumber++; });
// $infantNumberInput.val(infantNumber); $('#minusAdult').click(function () {
// }); if (adultNumber > 1) {
// $('#minusInfant').click(function () { adultNumber--;
// if (infantNumber > 0) { $adultNumberInput.val(adultNumber);
// infantNumber--; }
// $infantNumberInput.val(infantNumber); });
// } // 青少年
// }); $('#plusTeenager').click(function () {
teenagerNumber++;
$teenagerNumberInput.val(teenagerNumber);
});
$('#minusTeenager').click(function () {
if (teenagerNumber > 0) {
teenagerNumber--;
$teenagerNumberInput.val(teenagerNumber);
}
});
// 儿童
$('#plusChildren').click(function () {
childrenNumber++;
$childrenNumberInput.val(childrenNumber);
});
$('#minusChildren').click(function () {
if (childrenNumber > 0) {
childrenNumber--;
$childrenNumberInput.val(childrenNumber);
}
});
// 婴儿
$('#plusInfant').click(function () {
infantNumber++;
$infantNumberInput.val(infantNumber);
});
$('#minusInfant').click(function () {
if (infantNumber > 0) {
infantNumber--;
$infantNumberInput.val(infantNumber);
}
});
})
</script> </script>
<style>
.date_select {width: 27.5% !important;}
.age_range { margin-top: 45px;}
@media (max-width: 750px){
.date_select {
width: 93% !important;
}
.age_range { margin-top: 0;}
}
</style>

@ -105,12 +105,11 @@
<ul class="inspiration"> <ul class="inspiration">
<li><a <li><a
href="/southeast-asia/tours/highlights-of-thailand-cambodia-and-vietnam">3-Week href="/southeast-asia/tours/highlights-of-thailand-cambodia-and-vietnam">3 Weeks
Itinerary (In-depth)</a></li> </a></li>
<li><a href="/southeast-asia/tours/best-of-thailand-cambodia-and-vietnam"> <li><a href="/southeast-asia/tours/best-of-thailand-cambodia-and-vietnam">
2-Week Itinerary (Classic)</a></li> 2 Weeks</a></li>
<li><a href=" /southeast-asia/tours/from-south-vietnam-to-north-cambodia">1-Week <li><a href=" /southeast-asia/tours/from-south-vietnam-to-north-cambodia">12 Days</a></li>
Itinerary (Time-smart)</a></li>
</ul> </ul>
</div> </div>
@ -119,10 +118,10 @@
<span class="inspirationtitle">Vietnam & Cambodia:</span> <span class="inspirationtitle">Vietnam & Cambodia:</span>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/southeast-asia/tours/vietnam-cambodia-family-tour">2-Week <li><a href="/southeast-asia/tours/vietnam-cambodia-family-tour">2 Weeks for Family</a></li>
Itinerary for Family</a></li> <li><a href="/southeast-asia/tours/vietnam-cambodia-mekong-cruise">2 Weeks for Couple</a></li>
<li><a href="/southeast-asia/tours/vietnam-cambodia-mekong-cruise">2-Week <li><a href="/southeast-asia/tours/cambodia-and-vietnam-highlights">12 Days</a></li>
Itinerary for Retired Couple</a></li> <li><a href="/southeast-asia/tours/from-south-vietnam-to-north-cambodia">8 Days</a></li>
</ul> </ul>
</div> </div>
@ -130,15 +129,14 @@
<div class="inspirationlist topthings"> <div class="inspirationlist topthings">
<span class="inspirationtitle">Vietnam & Thailand:</span> <span class="inspirationtitle">Vietnam & Thailand:</span>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/southeast-asia/tours/classic-vietnam-and-thailand">2-Week Itinerary (Classic)</a></li> <li><a href="/southeast-asia/tours/classic-vietnam-and-thailand">2 Weeks</a></li>
</ul> </ul>
</div> </div>
<div class="inspirationlist topthings"> <div class="inspirationlist topthings">
<span class="inspirationtitle">Thailand & Cambodia:</span> <span class="inspirationtitle">Thailand & Cambodia:</span>
<ul class="inspiration"> <ul class="inspiration">
<li><a href="/southeast-asia/tours/best-of-thailand-and-cambodia">2-Week <li><a href="/southeast-asia/tours/best-of-thailand-and-cambodia">11 Days</a></li>
Itinerary (In-depth)</a></li>
</ul> </ul>
</div> </div>
</div> </div>

@ -98,24 +98,24 @@
<ul data-menu="submenu-6" id="submenu-6" class="menu__level" tabindex="-1" role="menu" <ul data-menu="submenu-6" id="submenu-6" class="menu__level" tabindex="-1" role="menu"
aria-label="Thailand_Vietnam_Cambodia"> aria-label="Thailand_Vietnam_Cambodia">
<li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/highlights-of-thailand-cambodia-and-vietnam" class="menu__link">3-Week Thailand, Cambodia, Vietnam Itinerary (In-depth)</a></li> <li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/highlights-of-thailand-cambodia-and-vietnam" class="menu__link">3 Weeks in Thailand, Cambodia, and Vietnam</a></li>
<li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/best-of-thailand-cambodia-and-vietnam" class="menu__link">2-Week Thailand, Cambodia, Vietnam Itinerary (Classic)</a></li> <li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/best-of-thailand-cambodia-and-vietnam" class="menu__link">2 Weeks in Thailand, Cambodia, and Vietnam</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href=" /southeast-asia/tours/from-south-vietnam-to-north-cambodia" class="menu__link">1-Week Vietnam & Cambodia Itinerary (Time-smart)</a></li> <li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href=" /southeast-asia/tours/from-south-vietnam-to-north-cambodia" class="menu__link">12 Days in Thailand, Cambodia, and Vietnam)</a></li>
<li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/vietnam-cambodia-family-tour" class="menu__link">2-Week Vietnam & Cambodia Itinerary (Family)</a></li> <li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/vietnam-cambodia-family-tour" class="menu__link">2 Weeks in Vietnam and Cambodia for Family</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href="/southeast-asia/tours/vietnam-cambodia-mekong-cruise" class="menu__link">2-Week Vietnam & Cambodia Itinerary (Retired Couple)</a></li> <li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/vietnam-cambodia-mekong-cruise" class="menu__link">2 Weeks in Vietnam and Cambodia With Mekong Cruise</a></li>
<li class="menu__item" role="menuitem"><a href="/southeast-asia/tours/cambodia-and-vietnam-highlights" class="menu__link">12 Days in Vietnam and Cambodia</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href="/southeast-asia/tours/from-south-vietnam-to-north-cambodia" class="menu__link">8 Days in Vietnam and Cambodia</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href="/southeast-asia/tours/classic-vietnam-and-thailand" class="menu__link">2 Weeks in Vietnam and Thailand</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href="/southeast-asia/tours/classic-vietnam-and-thailand" class="menu__link">2-Week Vietnam & Thailand Itinerary (Classic)</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href="/southeast-asia/tours/best-of-thailand-and-cambodia" class="menu__link">11 Days in Thailand and Cambodia</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 30px;"><a href="/southeast-asia/tours/best-of-thailand-and-cambodia" class="menu__link">2-Weel Thailand & Cambodia Itinerary (In-depth)</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/southeast-asia/tours/thailand-cambodia-and-vietnam">All Thailand-Vietnam-Cambodia Tours</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" href="/southeast-asia/tours/thailand-cambodia-and-vietnam">All Thailand-Vietnam-Cambodia Tours</a></li>
</ul> </ul>
<!-- destinations --> <!-- destinations -->
<ul data-menu="submenu-1" id="submenu-1" class="menu__level" tabindex="-1" role="menu" aria-label="destinations"> <ul data-menu="submenu-1" id="submenu-1" class="menu__level" tabindex="-1" role="menu" aria-label="destinations">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/tours">Top Asia Tours</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" href="/tours">Top Asia Tours</a></li>

@ -123,6 +123,21 @@
id="china_top_attractions_2021">China Top Attractions</a></li> id="china_top_attractions_2021">China Top Attractions</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/weather/" <li class="start-nav-item start-nav-item-last"><a href="/weather/"
id="china_weather_2021">China Weather</a></li> id="china_weather_2021">China Weather</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/travelguide/3-weeks-china-itinerary.htm"
id="china_weather_2021">3 Weeks in China</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/travelguide/17-days-china-itinerary.htm"
id="china_weather_2021">17 Days in China</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/travelguide/2-weeks-china-itinerary.htm"
id="china_weather_2021">2 Weeks in China</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/travelguide/12-days-china-itinerary.htm"
id="china_weather_2021">12 Days in China</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/travelguide/10-days-china-itinerary.htm"
id="china_weather_2021">10 Days in China</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/travelguide/8-day-china-itinerary.htm"
id="china_weather_2021">8 Days in China</a></li>
<li class="start-nav-item start-nav-item-last"><a href="/travelguide/5-days-china-itinerary.htm"
id="china_weather_2021">5 Days in China</a></li>
</ul> </ul>
</div> </div>
</li> </li>

@ -894,7 +894,7 @@
</div> </div>
<p id="tip_box" style="display: none; padding:0 20px; text-align: left; font-weight: 400; font-size: 19px;"> <p id="tip_box" style="display: none; padding:0 20px; text-align: left; font-weight: 400; font-size: 19px;">
<strong >Note:</strong> <br> <strong >Important notes:</strong> <br>
Your passport must be valid for more than 3 months at the time of entry into China. <br> Your passport must be valid for more than 3 months at the time of entry into China. <br>
You dont't have Chinese visa refusal stamps in your passport.<br> You dont't have Chinese visa refusal stamps in your passport.<br>
Please bring your China hotel reservation in case it is needed at the time of entry into China. Please bring your China hotel reservation in case it is needed at the time of entry into China.
@ -907,7 +907,6 @@
<a href="https://www.facebook.com/login/?next=https%3A%2F%2Fwww.facebook.com%2Fgroups%2Fgoing2china%2F" target="_blank"><img alt="join us to China" class="img-responsive" src="https://data.chinahighlights.com/image/forms/thank-you-going-to-china.jpg" style=" border-radius: 6px;margin-top: 20px;" /></a> <a href="https://www.facebook.com/login/?next=https%3A%2F%2Fwww.facebook.com%2Fgroups%2Fgoing2china%2F" target="_blank"><img alt="join us to China" class="img-responsive" src="https://data.chinahighlights.com/image/forms/thank-you-going-to-china.jpg" style=" border-radius: 6px;margin-top: 20px;" /></a>
</p> </p>
</div> </div>
<script> <script>
function ready(fn) { function ready(fn) {
const el = (elementId) => { const el = (elementId) => {

@ -180,6 +180,20 @@
href="/travelguide/china-attraction-guide.htm">China href="/travelguide/china-attraction-guide.htm">China
Top Attractions</a></li> Top Attractions</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/weather/">China Weather</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" href="/weather/">China Weather</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/travelguide/3-weeks-china-itinerary.htm"
id="china_weather_2021">3 Weeks in China</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/travelguide/17-days-china-itinerary.htm"
id="china_weather_2021">17 Days in China</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/travelguide/2-weeks-china-itinerary.htm"
id="china_weather_2021">2 Weeks in China</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/travelguide/12-days-china-itinerary.htm"
id="china_weather_2021">12 Days in China</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/travelguide/10-days-china-itinerary.htm"
id="china_weather_2021">10 Days in China</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/travelguide/8-day-china-itinerary.htm"
id="china_weather_2021">8 Days in China</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/travelguide/5-days-china-itinerary.htm"
id="china_weather_2021">5 Days in China</a></li>
</ul> </ul>
<!-- Culture --> <!-- Culture -->
<ul data-menu="submenu-4" id="submenu-4" class="menu__level" tabindex="-1" role="menu" aria-label="Culture"> <ul data-menu="submenu-4" id="submenu-4" class="menu__level" tabindex="-1" role="menu" aria-label="Culture">

Loading…
Cancel
Save