Level 2
I founded. I need use wire:model.live from "topic"
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello everyone, I am using Laravel 11 and Livewire 3. I want to show input's when select box option selected. This is my livewire blade:
<div class="contact-form">
{{-- To attain knowledge, add things every day; To attain wisdom, subtract things every day. --}}
<form method="post" wire:submit.prevent="submit">
<div class="row gx-3 gy-0">
<div class="col-12 col-sm-6">
<input type="text" id="name" name="name" wire:model="name" placeholder="Adınız Soyadınız" required>
</div>
<div class="col-12 col-sm-6">
<input type="email" id="email" name="email" wire:model="email" placeholder="E-Mail" required>
</div>
</div>
<div class="row gx-3 gy-0">
<div class="col-12 col-sm-6">
<input type="tel" id="phone" name="phone" wire:model="phone" placeholder="Telefonunuz" oninput="formatPhoneNumber()" required>
</div>
<div class="col-12 col-sm-6">
<select name="topic" id="topic" wire:model="topic" class="custom-select w-100" required>
<option>Konu Seçiniz</option>
<option value="1">Şikayet</option>
<option value="2">Öneri</option>
<option value="3">Sponsorluk</option>
<option value="4">Aramıza Katıl</option>
</select>
</div>
</div>
@if ($topic == 1)
{{-- Şikayet Formu --}}
<div class="row gx-3 gy-0">
<div class="col-12">
<textarea name="complaint" placeholder="Şikayetiniz" required></textarea>
</div>
</div>
@elseif ($topic == 2)
{{-- Öneri Formu --}}
<div class="row gx-3 gy-0">
<div class="col-12">
<textarea name="suggestion" placeholder="Öneriniz" required></textarea>
</div>
</div>
@elseif ($topic == 3)
{{-- Sponsorluk Formu --}}
<div class="row gx-3 gy-0">
<div class="col-12">
<input type="text" name="sponsor_company" placeholder="Şirket Adı" required>
</div>
</div>
@elseif ($topic == 4)
{{-- Aramıza Katıl Formu --}}
<div class="row gx-3 gy-0">
<div class="col-12">
<input type="text" name="position" placeholder="Pozisyonunuz" required>
</div>
</div>
@endif
<button class="button button-lg button-rounded button-turquiose" type="submit">Send Message</button>
</form>
{{-- Submit result --}}
<div class="submit-result">
<span id="success">Thank you! Your Message has been sent.</span>
<span id="error">Something went wrong, Please try again!</span>
</div>
</div>
<script>
function formatPhoneNumber() {
console.log("formatPhoneNumber");
const input = document.getElementById("phone");
let value = input.value.replace(/\D/g, ""); // Take only numbers
if (value.startsWith("0")) {
value = value.substring(1); // Remove leading zero
}
// Format phone number
let formattedValue = "";
if (value.length > 0) {
formattedValue = "0";
}
if (value.length > 0) {
formattedValue += value.substring(0, 3);
}
if (value.length >= 4) {
formattedValue += " " + value.substring(3, 6);
}
if (value.length >= 7) {
formattedValue += " " + value.substring(6, 8);
}
if (value.length >= 9) {
formattedValue += " " + value.substring(8, 10);
}
input.value = formattedValue;
}
</script>
Livewire controller:
<?php
namespace App\Livewire\Customer;
use Livewire\Component;
class Contact extends Component
{
public $name, $email, $phone;
public $topic = '';
public function render()
{
return view('livewire.customer.contact');
}
}
This input's are example. I will write true format when it show and hide.
I founded. I need use wire:model.live from "topic"
Please or to participate in this conversation.