Toon posts:

[PHP] Laravel Livewire buttons disabelen

Pagina: 1
Acties:

Vraag


  • jseub
  • Registratie: juli 2012
  • Laatst online: 03-12 15:41
Hi!

Ik ben bezig met een applicatie waarbij er een lijst is met buttons, welke elk een wire:click-event hebben. Ik wil nu met één 'centrale' button al die buttons uitschakelen (disabled). Dat gaat prima (middels javascript), maar ik kom in de knel met een wire:poll die op alle buttons zit. Hij haalt daarmee de laatste status op. Echter verwijdert hij daardoor ook de disabled-status.
...

Relevante software en hardware die ik gebruik
Laravel 8 + livewire
...

Wat ik al gevonden of geprobeerd heb
...
Ik kan vrijwel niets vinden over het disabelen (en enabelen) van wire:click, en ik kom er niet uit met de disabled-status.

Ik heb geprobeerd de disabled-status door te geven aan het livewire-component, maar dat werkt niet.

iemand tips? :?

Alle reacties


  • luukvr
  • Registratie: juni 2011
  • Niet online
Geen idee wat livewire is, maar gok er op dat die poll soort van html ophaalt van de server (via ajax) en plaats binnen een html component, de server weet niks van aanpassingen die je hebt gedaan, beter om misschien een actie/status te versturen naar de server dat je de buttons wil disablen, in je gegenereerde code disablede buttons terug geven op basis van die actie/status en dan de poll te forceren (waardoor alle disablede buttons ingeladen worden).

  • vaanie
  • Registratie: december 2009
  • Laatst online: 21:58
Ik sluit mij aan bij Luukvr, ik zou een centrale status uit sturen emitten van je livewire component die bepaald of de Buttons actief zijn (indien het natuurlijk verschillende componenten zijn) en dan een listener maken op je component dat je buttons bevat.

Wat lukt er niet aan de status doorgeven?

  • Hiroj
  • Registratie: mei 2010
  • Laatst online: 30-11 15:10
Je zou dit kunnen oplossen door een extra property aan je Livewire class toe te voegen.
Zeg bijvoorbeeld:

code:
1
2
3
4
5
6
7
8
9
<?php

namespace App\Http\Livewire;

use Livewire\Component;

class MyBeautifulComponent extends Component
{
    public $buttonsDisabled = false;


Je zou dan met een wire:click="$toggle('buttonsDisabled')" het aan en uit kunnen zetten. En verder hoef je dan enkel in je Blade component bestand te checken of de property nog true/false is.

  • milo526
  • Registratie: februari 2014
  • Laatst online: 23:17
Hiroj schreef op maandag 29 november 2021 @ 17:11:
Je zou dit kunnen oplossen door een extra property aan je Livewire class toe te voegen.
Zeg bijvoorbeeld:

code:
1
2
3
4
5
6
7
8
9
<?php

namespace App\Http\Livewire;

use Livewire\Component;

class MyBeautifulComponent extends Component
{
    public $buttonsDisabled = false;


Je zou dan met een wire:click="$toggle('buttonsDisabled')" het aan en uit kunnen zetten. En verder hoef je dan enkel in je Blade component bestand te checken of de property nog true/false is.
En de click zou je moeten kunnen disablen door het "disabled" property op je button te zetten.

code:
1
2
3
4
5
//Disable all buttons button
<button wire:click="$toggle('buttonsDisabled')"> Toggle all buttons</button>

//Other button
<button  wire:click="$something()" {{ $buttonsDisabled == 1 ? 'disabled' : '' }}>Click me</button>


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee