我有多个oneclick按钮,它们启动2个功能a和b,按钮处于foreach循环中,但是当我单击按钮时,他仅提供最后的rekord数据。
我如何在php foreach循环上添加正确的js?
function a()
{
document.getElementById('img').src='{{$produkt->productIcon->productIconSmallUrl}}';
}
function b(){
document.getElementById("price").innerHTML = "{{$produkt->productPurchasePriceGrossLast}}" ;
}
<img id="img" src="/placeholder.png" style="width:100px">
<br>Cena: <p id="price"></p>
<br>
<br>
<button onclick="a();b();">Kupuje</button>
控制器:
public function getProducts ()
{
$address = 'https://growtent.iai-shop.com/api/?gate=products/get/84/soap';
$wsdl = $address . '/wsdl';
$binding = array();
$binding['location'] = $address;
$binding['trace'] = true;
$client = new SoapClient($wsdl, $binding);
$request = array();
$request['get'] = array();
$request['get']['authenticate'] = array();
$request['get']['authenticate']['userLogin'] = $this->login;
$request['get']['authenticate']['authenticateKey'] = sha1(date('Ymd') . sha1($this->password));
$request['get']['params'] = array();
$request['get']['params']['returnProducts'] = "active";
$request['get']['params']['productIsAvailable'] = "y";
$request['get']['params']['resultsPage'] = 2;
$request['get']['params']['resultsLimit'] = 10;
//$request['get']['params']['categories'][0]['categoryName'] = "Growboxy";
$response = $client->__call('get', $request);
return view('welcome',['response'=>$response]);
}
路线:
Route::get('/', 'WelcomeController@getProducts');
查看文件:
<body>
<img id="img" src="/placeholder.png" style="width:100px">
<br>Cena: <p id="price"></p>
<br>
<br>
<hr>
<br>
<br>
<br>
<br>
<br>
<br>
@foreach($response->results as $produkt)
<p>ID: {{$produkt->productId}}</p>
@foreach($produkt->productDescriptionsLangData as $name)
@if($name->langId == 'pol')
<a href="https://www.growtent.pl/product-pol-{{$produkt->productId}}"><p>{{$name->productName}}</p></a>
@endif
@endforeach
<p>{{$produkt->productPurchasePriceGrossLast}} zł</p>
<img src="{{$produkt->productIcon->productIconSmallUrl}}" />
<button onclick="a();b();">test</button>
<button onclick="document.getElementById('img').src='{{$produkt->productIcon->productIconSmallUrl}}'">fota</button>
@endforeach
<script>
function a()
{
document.getElementById('img').src='{{$produkt->productIcon->productIconSmallUrl}}';
}
function b(){
document.getElementById("price").innerHTML = "{{$produkt->productPurchasePriceGrossLast}}" ;
}
</script>
</body>
答案 0 :(得分:0)
您将img和price元素渲染为标签,没有ID,请记住ID必须是唯一的,如果要访问它们,则需要使用唯一的ID进行检索,因此一种选择是设置ID唯一,然后设置它的值。像这样:
@foreach($response->results as $produkt)
<p>ID: {{$produkt->productId}}</p>
@foreach($produkt->productDescriptionsLangData as $name)
@if($name->langId == 'pol')
<a href="https://www.growtent.pl/product-pol-{{$produkt->productId}}">.<p>{{$name->productName}}</p></a>
@endif
@endforeach
<p id="p_{{$product->id}}">{{$produkt->productPurchasePriceGrossLast}} zł</p>
<img id="img_{{$product->id}}" src="{{$produkt->productIcon->productIconSmallUrl}}" />
<button onclick="a();b();">test</button>
@endforeach
function a()
{
document.getElementById('img_{{$product->productId}}').src='{{$produkt->productIcon->productIconSmallUrl}}';
}
function b(){
document.getElementById("p_{{$product->productId}}").innerHTML = "{{$produkt->productPurchasePriceGrossLast}}" ;
}