Change user meta value with shortcode

You made error, you made checks on the value which were null, i compile your code and made changes, here is the code it will help you.


function wp_change_namecar( $atts, $content = null  ) {
    if (is_user_logged_in()) {
        $user_id = get_current_user_id();
        $userval =$_POST['cars']; //how to define that it is the value of the form?

        if ($userval && $user_id) {
            if (update_user_meta( $user_id, 'user_name_car', $userval )) {
                return "<div class="user_updated">Updated!</div>";
            } else {
                return "<div class="user_updated error">Not Updated!</div>";
            }
        }    
        //Show the form
       return "<form method='post'>
       <label for="cars">Choose a car:</label>
       <select id='cars' name="cars">
         <option value="volvo">Volvo</option>
         <option value="saab">Saab</option>
         <option value="fiat">Fiat</option>
         <option value="audi">Audi</option>
       </select>
         <input type="submit" value="Change" />
       </form>";
        
    }
} 
add_shortcode('change_namecar','wp_change_namecar');