Как бы я добавить в новую строку, результаты на JQuery нажмите - PullRequest
0 голосов
/ 28 марта 2019

У меня есть функция, которая на данный момент просто генерирует случайное число при нажатии кнопки. В настоящее время он просто переопределяет текущий номер.

<!DOCTYPE html>
<html>
<head>
    <title>Number Generator</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

</head>
<?php 
// $random_number_array = [];
    function generatedNumbers(){
        $random_number_array = range(0, 100);
        shuffle($random_number_array );
        $random_number_array = array_slice($random_number_array ,0,10);

        foreach ($random_number_array as $key => $value) {
           print_r($value);
        }

    }

    if (isset($_GET['run'])) {
    generatedNumbers();
  }
;
 ?>
<body>
    <a href='index.php?run=true'>Generate</a>
<p></p>
</body>
</html>

Я хотел бы сгенерировать на новой строке числа в виде массива, чтобы за клик генерировать новую строку с новым набором чисел

1 Ответ

1 голос
/ 28 марта 2019

Решение 1:

Если вы хотите достичь желаемого результата, используя только PHP, вы можете выполнить следующий пример:

HTML:

<a href='index.php?run=true'>Generate</a>

PHP:

<?php 
session_start(); // need to use session_start to store array in session.

function generatedNumbers(){
    $random_number_array = range(0, 100);
    shuffle($random_number_array);
    $random_number_array = array_slice($random_number_array,0,10);
    foreach ($random_number_array as $key => $value) {
       $myArray[] = $value; // store values in array
    }

    if(isset($_SESSION['data']) && count($_SESSION['data']) > 0){
        $myArray = array_merge($_SESSION['data'],$myArray); // merge new and old array if exist in session.
    }

    $_SESSION['data'] = $myArray;    // reset the value in session.
    echo "<pre>";
    print_r($myArray);
}

if (isset($_GET['run'])) {
   generatedNumbers();
}
?>

Некоторые пояснения:

В PHP вы можете получить желаемый результат, используя session, вы можете сохранить все значения в массиве, затем вы можете использовать $_SESSION для следующего результата, в конце вы можете объединить старые и новые данные вместе, используя array_merge()


Решение 2:

Вы также можете получить желаемый результат, используя jQuery / Ajax:

Внешний интерфейс:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<a href='javascript:void(0);' id="generate">Generate</a>

<div id="result"></div>

<script type="text/javascript">
    $(document).ready(function(){
        $("#generate").click(function(){
            $.ajax({
                url: "index2.php",
                type: "GET",
                data: "run=1",
                dataType: "html",  // Has to be false to be able to return response
                success: function(response) {
                    $("#result").html(response);
                }
            });  // JQUERY Native Ajax End
        });
    });
</script>

Теперь вам нужно позвонить index2.php, используя ajax, ваш index2.php имеет следующий код:

index2.php:

<?php 
session_start(); // need to use session_start to store array in session.
function generatedNumbers(){
    $random_number_array = range(0, 100);
    shuffle($random_number_array);
    $random_number_array = array_slice($random_number_array,0,10);
    foreach ($random_number_array as $key => $value) {
       $myArray[] = $value; // store values in array
    }

    if(isset($_SESSION['data']) && count($_SESSION['data']) > 0){
        $myArray = array_merge($_SESSION['data'],$myArray); // merge new and old array if exist in session.
    }

    $_SESSION['data'] = $myArray;    // reset the value in session.
    echo "<pre>";
    print_r($_SESSION['data']);
}

if (isset($_GET['run'])) {
   generatedNumbers();
}
?>

Примечание: index.php и index2.php должны находиться в одном каталоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...