In what scenarios is it recommended to implement client-side validation using JavaScript in addition to server-side validation in PHP forms for better user experience and error prevention?

Client-side validation using JavaScript should be implemented in addition to server-side validation in PHP forms to provide immediate feedback to users and prevent unnecessary server requests. This can improve user experience by catching errors before submitting the form and reduce the load on the server by filtering out invalid data early on.

<form action="process_form.php" method="post" onsubmit="return validateForm()">
    <input type="text" name="username" id="username" placeholder="Username">
    <input type="password" name="password" id="password" placeholder="Password">
    <button type="submit">Submit</button>
</form>

<script>
function validateForm() {
    var username = document.getElementById('username').value;
    var password = document.getElementById('password').value;

    if(username === '' || password === '') {
        alert('Please fill out all fields');
        return false;
    }

    return true;
}
</script>