-1

I want to change the possibility to get the answer of the value in the input in this form (to provide the russian word for a number) from the submit-Button to a dynamic AJAX-function to get the answer instantly.

Thank you !!!

With the help of @user1978142 it works perfectly. But now I search for a solution to add a Play-Button, which spellout the word with Google TTS (Text-To-Speech) I find a solution for Google TTS, but it only works on Google Chrome.

<?  
    $ru = new NumberFormatter("ru", NumberFormatter::SPELLOUT);     
?>

<form method="get" action="index.php">
    Zahl: 
    <input name="zahl" type="text" size="15" maxlength="15">
    <input type="submit" value="Anzeigen">
</form> 

<?
    if (is_numeric($_REQUEST['zahl'])) echo $ru->format($_REQUEST['zahl']);
?> 
user1978142
  • 7,946
  • 3
  • 17
  • 20
Grischa
  • 70
  • 8
  • 26

1 Answers1

1

Since jQuery is tagged, and given that NumberFormatter is already installed, a simple $.ajax is all you need. Take note of the encoding also (I think ru is meant for russian). Consider this example:

Your index.php

<form method="POST" action="index.php">
    <label for="zahl">Zahl:</label> <br/>
    <input id="zahl" name="zahl" type="number" size="15" maxlength="15"><br/><br/>
    <div id="results" style="width: 400px;"></div> <!-- results appear here -->
</form>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

    $('#zahl').on('keyup', function(){
            // ajax request server
        $.ajax({ url: 'number_process.php', type: 'POST', dataType: 'text', data: {value: $(this).val()},
            success: function(response) {
                $('#results').text(response); // append to result div
            }
        });
    });

});
</script>

number_process.php (Sample Name)

Create the php file that will handle the ajax request. This will process it and return your value.

<?php

if(isset($_POST['value'])) {
    $ru = new NumberFormatter("ru", NumberFormatter::SPELLOUT);
    // normal processing
    $value = $ru->format($_POST['value']);
    echo mb_convert_encoding($value, 'UTF-8', 'auto'); // russian characters
    exit;
}
?>
user1978142
  • 7,946
  • 3
  • 17
  • 20