在视图yii2中使用内联脚本


Use inline script in views yii2

我在网上找到了一个jquery代码来集成谷歌地图,我想在我的应用程序中集成以正确获取地址。这是我找到的jquery。我使用的是yii2高级模板。我创建了一个名为LocateAsset.php的新AssetBundle,代码如下

class LocateAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
    'css/site.css',
];
public $js = [
    'http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',
    'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js',
    'src/jquery.ui.addresspicker.js',
    'src/addresspickermap.js',
];
public $depends = [
    'yii'web'YiiAsset',
    'yii'bootstrap'BootstrapAsset',
];
}

在原始演示插件页面上有内联脚本,但我创建了名为addresspickermap.js的单独。js文件。我确实使用

注册了表单
use backend'assets'LocateAsset;
LocateAsset::register($this);

在同一个_form.php中,我使用代码来集成map

<div class="event-form">
<?php $form = ActiveForm::begin(); ?>
 <?= $form->field($model, 'location')->textInput(['maxlength' => true]) ?>
<div class='clearfix'>
<div class='input input-positioned'>
  <label>Address : </label> <input id="addresspicker_map" />   <br/>
  <label>Locality: </label> <input id="locality" disabled=disabled> <br/>
  <label>SubLocality: </label> <input id="sublocality" disabled=disabled> <br/>
  <label>Borough: </label> <input id="administrative_area_level_3" disabled=disabled> <br/>
  <label>District: </label> <input id="administrative_area_level_2" disabled=disabled> <br/>
  <label>State/Province: </label> <input id="administrative_area_level_1" disabled=disabled> <br/>
  <label>Country:  </label> <input id="country" disabled=disabled> <br/>
  <label>Postal Code: </label> <input id="postal_code" disabled=disabled> <br/>
  <label>Lat:      </label> <input id="lat" disabled=disabled> <br/>
  <label>Lng:      </label> <input id="lng" disabled=disabled> <br/>
  <label>Zoom:     </label> <input id="zoom" disabled=disabled> <br/>
  <label>Type:     </label> <input id="type" disabled=disabled /> <br/>
</div>
<div class='map-wrapper'>
  <label id="geo_label" for="reverseGeocode">Reverse Geocode after Marker Drag?</label>
  <select id="reverseGeocode">
    <option value="false" selected>No</option>
    <option value="true">Yes</option>
  </select><br/>
  <div id="map"></div>
  <div id="legend">You can drag and drop the marker to the correct location</div>
</div>

</div>
<?php ActiveForm::end(); ?>

</div>

但我不知道我在我的表单页面上缺少什么,我没有得到表单页面上的地图地址栏都不起作用让我知道我做错了什么。谢谢你

你的代码看起来不错。如果你想检查脚本是否工作或不尝试firebug或在谷歌浏览器,去检查该页面上的元素,去源部分,并找到那里的脚本。

使用断点并刷新页面或生成应该使用脚本的事件,您将知道您的脚本是否被包含。

可能还有一个问题,您的css代码可能与相同的名称冲突。尝试更改映射的名称或id,并查看。

谷歌集成地图的例子,你会发现大量的例子如何在你的页面上实现地图