多重Oneclick功能带循环

时间:2019-03-13 13:08:45

标签: javascript

我有多个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>

1 个答案:

答案 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}}" ;
 }