【问题标题】:How would I append to new line, results on jquery click我将如何附加到新行,jquery click 上的结果
【发布时间】:2019-03-28 14:05:35
【问题描述】:

我有一个函数,它现在只是在单击按钮时生成一个随机数。它目前只是覆盖当前生成的数字。

<!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>

我想在新行上生成一个数组的数字,所以每次点击都会生成带有一组新数字的新行

【问题讨论】:

  • 将数字存储在会话/GET数组中,您可以使用random_int / rand生成随机数。
  • 您必须使用 jquery ajax 在单击时调用您的数字功能,并使用 jquery append 将其添加到 dom。如果您需要代码方面的帮助,您需要使用您尝试过的 javascript 更新您的问题。

标签: php arrays ajax


【解决方案1】:

解决方案 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>

现在,您需要使用 ajax 调用 index2.php,您的 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 必须在同一目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多