Laravel Javascript图像交换下拉列表
现在我正在使用Laravel 5.0开发电子商务购物网站,这是我的fyp,还有很长的路要走。。无论如何 我制作了产品展示页面 这是我的控制器:Laravel Javascript图像交换下拉列表,javascript,laravel-5,Javascript,Laravel 5,现在我正在使用Laravel 5.0开发电子商务购物网站,这是我的fyp,还有很长的路要走。。无论如何 我制作了产品展示页面 这是我的控制器: public function getView($id) { return view('store.show')->with('products', Product::find($id))->with('categories',Category::all())->with('db',Product::all())-&g
public function getView($id)
{
return view('store.show')->with('products', Product::find($id))->with('categories',Category::all())->with('db',Product::all())->with('options', Gambar::where('product_id','=',$id)->lists('name', 'img'));
}
如您所见,在这一行的末尾有代码列表('name','img')
它会将列名和图像值列成一个列表
一切都是完美的作品接受,我需要作出选择与图像变化下拉列表
查看我的下拉列表和imageswap的代码:
<div class="form-group">
{!! Form::open(array('url' => 'foo/bar')) !!}
{!! Form::label('Link Category') !!}<br />
{!! Form::select('product_id',(['0' => 'Select an Option'] + $options),null,['class' => 'form-control', 'id' => 'dlist', 'onChange' => 'swapImage()']) !!}
{!! Form::close() !!}
<script type="text/javascript">
function swapImage(){
var image = document.getElementById("imageToSwap");
var dropd = document.getElementById("dlist");
image.src = dropd.value;
};
</script>
</div>
{!!Form::open(数组('url'=>'foo/bar'))
{!!Form::label('Link Category')!!}
{!!Form::select('product_id',(['0'=>'select an Option']+$options),null,['class'=>'Form control','id'=>'dlist','onChange'=>'swapImage()')!!}
{!!Form::close()!!}
函数swapImage(){
var image=document.getElementById(“imageToSwap”);
var dropd=document.getElementById(“dlist”);
image.src=dropd.value;
};
根据选择(产品->图像是主图像,而不是下拉列表中的种子)显示图像的代码:
<img id="imageToSwap" src="{{asset($products->image)}}" />
image)}}/>
controller中的列表流可以工作,但它在源chrome视图中提供了以下功能:
<img id="imageToSwap" src="img/upload/20-3-291-image-1.jpg" />
因此,图像不会出现在页面中,它应该如下所示:
<img id="imageToSwap" src="localhost:8000/img/upload/20-3-291-image-1.jpg" />
问题是,如何使用laravel asset{{asset()}返回“img”,以便图像能够完美显示?问题在于laravel和javascript之间的通信 正如您所指出的,您使用的是列表('name','img'):资产前缀不会添加到那里 因此,当您执行
image.src=dropd.value;
操作时,图像的源没有资产前缀
我认为有两种可能性:
- 您可以在发送列表之前对列表进行一些处理:
(使用该方法--不确定是否可用于laravel 5.0)列出('name','img')->映射(资产)
- 或者将其添加到javascript中:
image.src=“{{asset()}}/”+dropd.value;