Клуб API Карт

не получается вывести дату буквами в балуне

Пост в архиве.

Привет всем. У меня не получается сделать дату буквами и вывести вбалуне. Если просто использовать в php все работает, но как только попытался вывести это в балун, он просто перестал отображаться. Вот php скрипт  который я использую 

 

$row1 = $mar['data_d'];
$currenttime = time(); //
текущая дата и времяв unix формате
$date_time_string = $row1; //
это дата и времяиз базы данных
$dt_elements = explode(' ',$date_time_string);
$date_elements = explode('-',$dt_elements[0]);
$time_elements = explode(':',$dt_elements[1]);
$newtime= mktime($time_elements[0], $time_elements[1],$time_elements[2], $date_elements[1],$date_elements[2], $date_elements[0]);

$days=floor(($newtime-time())/86400);
$hours=floor(($newtime-time())/3600-($days*24));
$mins=floor(($newtime-time())/60-($days*1440)-($hours*60));
$secs=floor(($newtime-time())-($days*86400)-($hours*3600)-($mins*60));
if($days>0)
{
if ($days==1){$tame_task='
Задача закроется через день';}
else if(($days>1 AND $days<5) OR($days>21 AND $days<25)OR($days>31 AND $days<35)
OR($days>41 AND $days<45)OR($days>51 AND $days<55)OR($days>61 AND $days<65)
OR($days>71 AND $days<75)OR($days>81 AND $days<85)OR($days>91 AND $days<95)
OR($days>101 AND $days<105))
{$tame_task='
Задача закроется через '.$days.' дня ';}

else if (($days>4 AND $days<21) OR ($days>24 AND $days<31) OR ($days>34 AND $days<41)
OR($days>44 AND $days<51) OR ($days>54 AND $days<61) OR($days>64 AND $days<71)
OR ($days>74 AND $days<81) OR($days>84 AND $days<81) OR ($days>84 AND $days<91)
OR($days>95 AND $days<101)OR($days>104 AND $days<121))
{$tame_task='
Задача закроется через '.$days.' дней ';}

else if ($days==21 OR $days==31 OR $days==41
OR $days==51 OR $days==61 OR $days==71
OR $days==81 OR $days==91 OR $days==101
OR $days==121 ){$tame_task='
Задача закроется через '.$days.' день';}
else if ($days>121){$tame_task='
Задача закроется больше чем через 3 месяца';}

}
else if($days==0 ){
if($hours==1){$tame_task='
Задача закроется через час';}
elseif ($hours>4 AND $hours<21 ){$tame_task='
Задача закроется через '.$hours.' часов';}
elseif (($hours>1 AND $hours<5) OR ($hours>21 AND $hours<25)){$tame_task='
Задача закроется через '.$hours.' часа';}
elseif($hours==21) {$tame_task='
Задача закроется через '.$hours.' час';}
elseif($hours==0) {$tame_task='
Задача закроется меньше чем через час';}
else{$tame_task='
Задача закроется через '.$hours.' часов';}}

 

 в  $mar['data_d'] храниться дата в правильном формате. Пробовал просто ее выводить в балун все прекрасно выводит,  а как только вывожу  $tame_task балун и не открывается. Что надо сделать с php, чтобы все работало. Зарание большое спасибо 

12 комментариев

уберите, пожалуйста, Ваш код под кат

Что сделать???:-(

отредактировать свой пост, выделить весь свой код и нажать кнопку "врезка"

Может кто-то подсчитывал сколько дней остается до даты и выводил это в балун. Киньте скрипт, пожалуйста.

У меня даже простое условие if else в цикле не дает отображаться балану. В чем может быть проблема. Пожалуйста помогите очень надо.

Посмотри что в конце концов печатается в HTML

видимо вывод из PHP создает ошибку Javascript.

посмотри в консоль броузера

 

В консоли ошибок пишет только предупреждения связанные с css. Если Вы имели в виду под "печатается в HTML" посмотреть исходный код, когда страничка уже сформирована, то там ничего нет, даже текста подсказки для метки, хотя по идее он должен быть, или я просто чего-то не понимаю. Зарание большое спасибо.

 

Дайте ответ как такое может быть стоят два условия рядом в цикле.

if($_SESSION['m_task']==$mar['order_id']){$icon='twirl#blueIcon';}else{$icon='twirl#greenIcon';}
   

if($mar['type']==2){$href='вторая';}else{$href='Остальные';}

первое условие идет на тип метки и все работает!!!:-@

Второе условие выводим в балун, выводим чисто это условие - балун не открывается делаешь$href = $mar['type']; балун открывается с нужной цифрой.

 

Владислав Турман
28 января 2016, 02:39

ты как-то странно склоняешь слова, сделал огромную функцию, хотя мог бы погуглить и найти склонение в одну строку.

Какая разница суть в том, что простой код вида

if($mar['type']==2){$href

='вторая';}else{$href='Остальные';} не дает открываться балуну в свою очередь условие

if($_SESSION['m_task']==$

mar['order_id']){$icon='twirl#blueIcon';}else{$icon='twirl#greenIcon';} которое опредиляет форму самой метки работает. Почему????? и любое другое уловие или функция, результат которой, должен выводиться в балун, не дают его открыть.

Владислав Турман
28 января 2016, 02:39

А $href то какой потом получается ? И вообще за всей этой стеной кода не понятна суть.

Скинь весь исходник, мб так проще будет.

Javascript я показывать не буду, в нем идет запрос к vivodpointsmap.php вот он сам

header('Content-Type: text/html; charset=utf-8');
session_start();
$sdb_name = "localhost";
$user_name = "root";
$user_password = "";
$db_name = "basa";

// соединение с сервером базы данных
if(!$link = mysql_connect($sdb_name, $user_name, $user_password))
{
  echo "
Не могу соединиться с сервером базы данных
";
  exit();
}

// выбираем базу данных
if(!mysql_select_db($db_name, $link))
{
  echo "
Не могу выбрать базу данных
";
  exit();
}

mysql_query('SET NAMES utf8');



if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
 
$result = mysql_query("SELECT * FROM `order` WHERE `order_status` IN(1,2) AND `loc_status` = 1");
if(mysql_num_rows($result)>0)
{
while ($mar = mysql_fetch_array($result))
{

       

    if($_SESSION['m_task']==$mar['order_id']){$icon='twirl#blueIcon';}else{$icon='twirl#greenIcon';}
    if($mar['type']==2){$href='Постоянная работа';}else{$href='Подработка';}
   
$hin= mb_strimwidth($mar['order_title'], 0, 42, '...', 'UTF-8');

$json =  array('icontext'=>'', 'hinttext'=>$hin, 'balloontext'=>$href, 'styleplacemark'=>$icon, 'lat'=>$mar['lat'], 'lon'=>$mar['lon']);
$markers[] = $json;
}
 
}
$points = array(markers=>$markers);
 
echo json_encode($points);
 
}
unset($_SESSION['m_task']);

Вот и все что есть в vivodpointsmap.php.всетаки если надо вот js

       

Зарание большое спасибо