How can JavaScript and PHP interact in form validation to ensure smooth user experience?

To ensure smooth user experience in form validation, JavaScript can be used for client-side validation to provide immediate feedback to users without needing to submit the form. PHP can then be used for server-side validation to double-check the data once it's submitted to the server. By combining both client-side and server-side validation, we can create a seamless user experience and ensure data integrity.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    // Server-side validation
    if (empty($name)) {
        $error = "Name is required";
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Form Validation</title>
    <script>
        function validateForm() {
            var name = document.forms["myForm"]["name"].value;
            // Client-side validation
            if (name == "") {
                alert("Name must be filled out");
                return false;
            }
        }
    </script>
</head>
<body>
    <form name="myForm" method="post" onsubmit="return validateForm()">
        Name: <input type="text" name="name"><br>
        <input type="submit" value="Submit">
    </form>
    <?php if(isset($error)) { echo $error; } ?>
</body>
</html>