在视图 yii2 中使用内联脚本

Use inline script in views yii2

我在网上找到了 jquery 代码来集成 google 地图,我想集成到我的应用程序中以正确获取地址。 This is the jquery i found。我正在使用 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 中,我使用了代码来集成地图

<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 或 google chrome,转到检查该页面上的元素,转到源代码部分并在那里找到脚本。

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

可能还有一个问题是您的 css 代码可能与同名冲突。尝试更改地图的名称或 ID 并查看。

Google 集成地图的示例,您会发现大量关于如何在页面上实现地图的示例。