Forms 城市、乡村; lat=当前城市纬度; lng=当前城市经度; $(“#位置”).html(“”+城市+”/“+地区+”(“+lat+”,“+lng+”)); }); //-------------------------------选择级联结束------
城市、乡村; lat=当前城市纬度; lng=当前城市经度; $(“#位置”).html(“”+城市+”/“+地区+”(“+lat+”,“+lng+”)); }); //-------------------------------选择级联结束-------------------------//Forms 城市、乡村; lat=当前城市纬度; lng=当前城市经度; $(“#位置”).html(“”+城市+”/“+地区+”(“+lat+”,“+lng+”)); }); //-------------------------------选择级联结束------,forms,symfony,doctrine-orm,symfony-2.1,Forms,Symfony,Doctrine Orm,Symfony 2.1,城市、乡村; lat=当前城市纬度; lng=当前城市经度; $(“#位置”).html(“”+城市+”/“+地区+”(“+lat+”,“+lng+”)); }); //-------------------------------选择级联结束-------------------------// namespace ****\****Bundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator
namespace ****\****Bundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
class Country
{
private $id;
private $name;
/**
* @var integer $regions
*
* @ORM\OneToMany(targetEntity="Region", mappedBy="Country")
*/
protected $regions;
//...
}
class Region
{
private $id;
private $name;
/**
* @var integer $country
*
* @Assert\Type(type="****\***Bundle\Entity\Country")
* @ORM\ManyToOne(targetEntity="Country", inversedBy="regions")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id", nullable=false)
*/
private $country;
/**
* @ORM\OneToMany(targetEntity="City", mappedBy="Region")
*/
protected $cities;
}
class City
{
private $id;
private $name;
/**
* @var integer $region
*
* @Assert\Type(type="****\****Bundle\Entity\Region")
* @ORM\ManyToOne(targetEntity="Region", inversedBy="cities")
* @ORM\JoinColumn(name="region_id", referencedColumnName="id", nullable=false)
*/
private $region;
/**
* @ORM\OneToMany(targetEntity="Company", mappedBy="City")
*/
protected $companys;
//...
}
namespace ****\****Bundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class CityType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('region');
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => '****\****Bundle\Entity\City',
));
}
public function getName()
{
return 'city';
}
}
{% macro javascript_filter_unit(event, selector) %}
<script>
$(function(){
$('#usersection')
.on('{{ event }}', '{{ selector }}', function(e){
e.preventDefault();
if (!$(this).val()) return;
$.ajax({
$parent: $(this).closest('.child_collection'),
url: $(this).attr('data-url'),
type: "get",
dataType: "json",
data: {'id' : $(this).val(), 'repo': $(this).attr('data-repo'), parameter: $(this).attr('data-parameter')},
success: function (result) {
if (result['success'])
{
var units = result['units'];
this.$parent.find('.unit').eq(0).html(units);
}
}
});
})
});
</script>
{% endmacro %}
{% import ':Model/Macros:_macros.html.twig' as macros %}
{{ macros.javascript_filter_unit('change', '.unitTrigger') }}
//-------------------------------SELECT CASCADING-------------------------//
var currentCities=[];
// This is a demo API key that can only be used for a short period of time, and will be unavailable soon. You should rather request your API key (free) from http://battuta.medunes.net/
var BATTUTA_KEY="00000000000000000000000000000000"
// Populate country select box from battuta API
url="http://battuta.medunes.net/api/country/all/?key="+BATTUTA_KEY+"&callback=?";
$.getJSON(url,function(countries)
{
console.log(countries);
$('#country').material_select();
//loop through countries..
$.each(countries,function(key,country)
{
$("<option></option>")
.attr("value",country.code)
.append(country.name)
.appendTo($("#country"));
});
// trigger "change" to fire the #state section update process
$("#country").material_select('update');
$("#country").trigger("change");
});
$("#country").on("change",function()
{
countryCode=$("#country").val();
// Populate country select box from battuta API
url="http://battuta.medunes.net/api/region/"
+countryCode
+"/all/?key="+BATTUTA_KEY+"&callback=?";
$.getJSON(url,function(regions)
{
$("#region option").remove();
//loop through regions..
$.each(regions,function(key,region)
{
$("<option></option>")
.attr("value",region.region)
.append(region.region)
.appendTo($("#region"));
});
// trigger "change" to fire the #state section update process
$("#region").material_select('update');
$("#region").trigger("change");
});
});
$("#region").on("change",function()
{
// Populate country select box from battuta API
countryCode=$("#country").val();
region=$("#region").val();
url="http://battuta.medunes.net/api/city/"
+countryCode
+"/search/?region="
+region
+"&key="
+BATTUTA_KEY
+"&callback=?";
$.getJSON(url,function(cities)
{
currentCities=cities;
var i=0;
$("#city option").remove();
//loop through regions..
$.each(cities,function(key,city)
{
$("<option></option>")
.attr("value",i++)
.append(city.city)
.appendTo($("#city"));
});
// trigger "change" to fire the #state section update process
$("#city").material_select('update');
$("#city").trigger("change");
});
});
$("#city").on("change",function()
{
currentIndex=$("#city").val();
currentCity=currentCities[currentIndex];
city=currentCity.city;
region=currentCity.region;
country=currentCity.country;
lat=currentCity.latitude;
lng=currentCity.longitude;
$("#location").html('<i class="fa fa-map-marker"></i> <strong> '+city+"/"+region+"</strong>("+lat+","+lng+")");
});
//-------------------------------END OF SELECT CASCADING-------------------------//