首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有循环的多oneclick函数

具有循环的多oneclick函数
EN

Stack Overflow用户
提问于 2019-03-13 21:08:45
回答 1查看 74关注 0票数 0

我有多个oneclick按钮,他们启动了2个函数a和b,按钮在foreach循环中,但当我单击按钮时,它只给出最后一个请求数据。

如何在php foreach循环中添加正确的js?

代码语言:javascript
复制
function a() 
{
    document.getElementById('img').src='{{$produkt->productIcon->productIconSmallUrl}}';
  
}

function b(){
    document.getElementById("price").innerHTML = "{{$produkt->productPurchasePriceGrossLast}}" ;
}
代码语言:javascript
复制
<img id="img" src="/placeholder.png" style="width:100px">
<br>Cena: <p id="price"></p>

<br>
<br>
<button onclick="a();b();">Kupuje</button>

控制器:

代码语言:javascript
复制
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]);




}

路由:

代码语言:javascript
复制
Route::get('/', 'WelcomeController@getProducts');

查看文件:

代码语言:javascript
复制
    <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>
EN

回答 1

Stack Overflow用户

发布于 2019-03-13 21:49:25

你将img和price元素渲染为标签,没有ID,记住ID必须是唯一的,如果你想访问它们,你需要用唯一的ID来检索它们,所以一种选择是设置一个唯一的ID,然后设置它的值。如下所示:

代码语言:javascript
复制
@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}}" ;
 }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55142654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档