nivong Posted May 10, 2011 Share Posted May 10, 2011 Hi all, I have this problem with an echo I have this code, what is working only not all of it, it request a database (ID) TID which is a catorgy. Now I need to TID to be in a place but can't to seem to get it. Here is the code: <?php defined('_JEXEC') or die('Restricted access'); // no direct access ?> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script> <script type="text/javascript"> /* function changeActiveCategory(id,show) { var a_categoryname = "a_category"+id; if(show){ document.getElementById(a_categoryname).className = "active"+id; }else{ document.getElementById(a_categoryname).className = ""; } } */ function changeActiveType(id,show) { var a_typename = "a_type"+id; if(show){ document.getElementById(a_typename).className = "active"+id; }else{ document.getElementById(a_typename).className = ""; } } var markerGroups = { "1": [], "2": [], "3": [], "4": [], "5": []}; function toggleGroup(type) { for (var i = 0; i < markerGroups[type].length; i++) { var marker = markerGroups[type][i]; if (marker.getVisible()) { marker.setVisible(false); changeActiveType(type,false); } else { marker.setVisible(true); changeActiveType(type,true); } } } function changeActiveButton(id) { document.getElementById("idmap").className = "map"; document.getElementById("idsatellite").className = "satellite"; document.getElementById("idterrain").className = "terrain"; var dividname = "id"+id; document.getElementById(dividname).className = id+" "+id+"active"; } var map; var goHome = new google.maps.LatLng(<?php echo $DefaultLat;?>, <?php echo $DefaultLng;?>); function HomeControl(controlDiv, map) { controlDiv.style.padding = '0px 5px'; var controlUI = document.createElement('DIV'); controlUI.style.cursor = 'pointer'; controlUI.setAttribute("class","mapType"); controlDiv.appendChild(controlUI); var controlMap = document.createElement('DIV'); if(map.getMapTypeId()=='roadmap'){ controlMap.setAttribute("class","map mapactive"); }else{ controlMap.setAttribute("class","map"); } controlMap.setAttribute("id","idmap"); controlUI.appendChild(controlMap); var controlsatellite = document.createElement('DIV'); if(map.getMapTypeId()=='satellite'){ controlsatellite.setAttribute("class","satellite satelliteactive"); }else{ controlsatellite.setAttribute("class","satellite"); } controlsatellite.setAttribute("id","idsatellite"); controlUI.appendChild(controlsatellite); var controlterrain = document.createElement('DIV'); if(map.getMapTypeId()=='hybrid'){ controlterrain.setAttribute("class","terrain terrainactive"); }else{ controlterrain.setAttribute("class","terrain"); } controlterrain.setAttribute("id","idterrain"); controlUI.appendChild(controlterrain); google.maps.event.addDomListener(controlUI, 'click', function() { /*map.setCenter(goHome);*/ }); google.maps.event.addDomListener(controlMap, 'click', function() { map.setMapTypeId(google.maps.MapTypeId.ROADMAP); changeActiveButton('map'); }); google.maps.event.addDomListener(controlsatellite, 'click', function() { map.setMapTypeId(google.maps.MapTypeId.SATELLITE); changeActiveButton('satellite'); }); google.maps.event.addDomListener(controlterrain, 'click', function() { map.setMapTypeId(google.maps.MapTypeId.HYBRID); changeActiveButton('terrain'); /*map.setMapTypeId(google.maps.MapTypeId.TERRAIN);*/ }); } function initialize() { var latlng = new google.maps.LatLng(<?php echo $DefaultLat;?>, <?php echo $DefaultLng;?>); var myOptions = { zoom: <?php echo $MapDistance;?>, center: latlng, navigationControl:true, scaleControl:true, mapTypeControl: false, mapTypeId: google.maps.MapTypeId.HYBRID }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); var homeControlDiv = document.createElement('DIV'); var homeControl = new HomeControl(homeControlDiv, map); homeControlDiv.index = 1; map.controls[google.maps.ControlPosition.RIGHT].push(homeControlDiv); var gmarkers = []; var htmls = []; <?php echo 'var ptooltip=new Array();'; echo 'var showhtml=new Array();'; if($items) { $p=0; foreach ($items as $item) { $link = LinkHelper::getLink('properties','showproperty','',$item->CYslug,$item->Sslug,$item->Lslug,$item->Tslug,$item->Pslug); $item->name=str_replace("'","\'",$item->name); echo "\n"."ptooltip[".$p."]=new Array( '".$item->id."','".$item->ref."','".$item->tid."','".$item->name."','".$link."');"."\n"; /*property details*/ if($item->imagename!=NULL){ $img=$item->imagename;}else{$img='noimage.jpg';} $myHtml=''; $myHtml.='<div id="propertydetail"><div class="title"><a href="'. $link.'" title="'.str_replace('"',' ',$item->name).'">'.$item->name.'</a></div><div class="image"><img src="images/properties/images/thumbs/'.$item->id.'/'.$img.'" alt="'.str_replace('"',' ',$item->name).'" width="100" height="75"></div><div class="text">'; if ($item->name_type) { $myHtml.=JText::_($item->name_type).'<br />'; } if ($item->address) { $myHtml.=JText::_($item->address).'<br />'; } $myHtml.='</div>'; $myHtml.='<div class="property_button">'; $myHtml.='<a class="BottomlnkDetail" href="'.$link.'" title="'.$item->id.'">Lees meer...</a>'; $myHtml.='</div>'; $myHtml.='</div>'; echo "\n"."showhtml[".$p."]='".$myHtml."';"."\n"; $myHtml=''; /*end property details*/ $p++; } } ?> var base_Icon=new Array(); base_Icon = '<?php echo JURI::base();?>modules/mod_prop_googlemap/img/beer.png'; <?php if($items) { $x=0; foreach ($items as $item) { ?> var myLatlng = new google.maps.LatLng(<?php echo $item->lat;?>,<?php echo $item->lng;?>); var marker = new google.maps.Marker({ position: myLatlng, map: map, icon: base_Icon }); /*alert (marker.number);*/ marker.setTitle('Klik voor meer info.'); attachSecretMessage(marker, <?php echo $x;?>); markerGroups[HIER MOET TID KOMEN].push(marker); <?php $x++; } } ?> function attachSecretMessage(marker, number) { var infowindow = new google.maps.InfoWindow( { content: showhtml[number], /* disableAutoPan: true,*/ size: new google.maps.Size(50,50) }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); /*showInContentWindow(showhtml[number]);*/ }); google.maps.event.addListener(infowindow, 'closeclick', function() { /*infowindow.close(map,marker); showInContentWindow(''); closeInContentWindow();*/ }); /* google.maps.event.addDomListener(controlterrain, 'click', function() { map.setMapTypeId(google.maps.MapTypeId.HYBRID); changeActiveButton('terrain'); }); */ } function showInContentWindow(text) { var sidediv = document.getElementById('content_window'); sidediv.style.visibility = "visible"; sidediv.innerHTML = text; } function closeInContentWindow() { var sidediv = document.getElementById('content_window'); sidediv.style.visibility = "hidden"; } } </script> <div class="prop_googlemap" style="width:960px; height:510px"> <div class="first"> <div class="second"> <div class="third"> <div id="map_canvas" style="width: 950px; height: 500px"></div> <div id="prop_googlemap_categories_all"> <div id="prop_googlemap_categories"> <ul class="categorys"> <li><a id="a_type1" class="active1" href="javascript:void(0)" onclick="toggleGroup('1');">Kroeg</a></li> <li><a id="a_type2" class="active2" href="javascript:void(0)" onclick="toggleGroup('2');">Discotheek</a></li> <li><a id="a_type3" class="active3" href="javascript:void(0)" onclick="toggleGroup('3');">Zaal</a></li> <li><a id="a_type4" class="active4" href="javascript:void(0)" onclick="toggleGroup('4');">test</a></li> </ul> </div> <div style="clear:both"></div> <div class="prop_googlemap_categories_bottom"></div> </div> <div id="content_window"></div> <div id="side_bar"></div> </div> </div> </div> </div> <script type="text/javascript"> initialize(); </script> <div style="clear:both"></div> As you can see here: markerGroups[THIS IS WHERE THE TID SHOULD COME].push(marker); where now it says: "THIS IS WHERE THE TID SHOULD COME" there needs to be a number ( 1 stands for a bar, 2 stands for a disco, 3 for something else. Now this is where I ask for the TID: echo "\n"."ptooltip[".$p."]=new Array( '".$item->id."','".$item->ref."','".$item->tid."','".$item->name."','".$link."');"."\n"; But it can be me, but can't seem to get it working.... Can't seem to get the right code for "THIS IS WHERE THE TID SHOULD COME" anyone that could help me? Thanks! Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/ Share on other sites More sharing options...
nivong Posted May 11, 2011 Author Share Posted May 11, 2011 realy need this one, anyone who can help me? Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1213793 Share on other sites More sharing options...
nivong Posted May 15, 2011 Author Share Posted May 15, 2011 BUMP! Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1215774 Share on other sites More sharing options...
jcbones Posted May 15, 2011 Share Posted May 15, 2011 Did you try: markerGroups[<?php echo $item->tid; ?>].push(marker); Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1215782 Share on other sites More sharing options...
nivong Posted May 18, 2011 Author Share Posted May 18, 2011 Got it working! Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1216904 Share on other sites More sharing options...
nivong Posted May 19, 2011 Author Share Posted May 19, 2011 can this topic be deleted? thanks Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1217489 Share on other sites More sharing options...
anupamsaha Posted May 19, 2011 Share Posted May 19, 2011 @nivong: I see that you are writing Joomla code but not obeying the rule of Joomla. Writing JS like this will break the W3C validation for the page. Please see http://docs.joomla.org/Adding_JavaScript_and_CSS_to_the_page and stick to the standards of Joomla. You will stand apart from the others. Thanks! Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1217493 Share on other sites More sharing options...
Adam Posted May 19, 2011 Share Posted May 19, 2011 JavaScript breaks the validation because the parser tries to interpret the code as HTML, when obviously it's not. All that's needed to get around this problem is CDATA tags: <script type="text/javascript"> // <![CDATA[ ... // ]]> </script> Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1217499 Share on other sites More sharing options...
nivong Posted May 22, 2011 Author Share Posted May 22, 2011 almost forgot thanks Can this be delete now? thanks Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1218824 Share on other sites More sharing options...
KevinM1 Posted May 22, 2011 Share Posted May 22, 2011 JavaScript breaks the validation because the parser tries to interpret the code as HTML, when obviously it's not. All that's needed to get around this problem is CDATA tags: <script type="text/javascript"> // <![CDATA[ ... // ]]> </script> Ugh. The validation parser should be updated to ignore code within <script></script> tags. Doing the CDATA hack is so 2002. Quote Link to comment https://forums.phpfreaks.com/topic/236027-php-echo-problem/#findComment-1218826 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.