-5

各位晚上好,

我一直在寻找并尝试构建一个小程序,我希望用户输入未知数量的数字(他可以输入任意数量的数字),并且我想用它们制作一个数组,互联网上到处都在使用许多“input type="text"....”框,但我不知道用户会输入多少。而且我不希望页面不断刷新,所以如果可能的话,我想一次将所有数字发送到同一页面或另一个页面,用它们创建一个数组,这样我就可以使用基于它的函数来完成程序大批。

编辑:我第一次使用<form action="process.php" method=POST> insert values here: <input type="number" name=num><br> <input type="submit" value="send"> </form>

并且不知道在那之后该怎么做,然后我阅读了有关文件并使用了这段代码,并且它起作用了。感谢使用 jquery 回答的成员,但我还没有学习 java,所以我现在不能真正使用它。我从去年开始是一名软件工程专业的学生,​​但仍然不太了解和理解,所以当我阅读别人的代码并且不理解时我很尴尬

` $h = fopen("numtext.txt", "r");

if($h) {
    while (($data = fgetcsv($h, 1000, " ")) !== FALSE) {
        foreach($data as $num)
            $numbers[] = $num;
    }
    fclose($h);
}

print_r($numbers);
echo count($numbers);`
4

1 回答 1

0

这是一个使用jQuery的简单方法

var InputHandler = function( $el ){
  var t = this;
  this.$el = $el;
  this.sendToServerButton = $el.find("button.sendToServer");

  var newInputElement = '<input type="text" /><br>';

  this.$el.append(newInputElement);

  
  /**
    on enter:
      add newInputElement and
      change focus to the new
  **/
  this.$el.on("keyup", "input", function(e){
    if (e.which !== 13) {
      return false;
    }
    t.$el.append(newInputElement);
    t.$el.find("input:last").focus();
  });

  
  /**
    send to the backend "script.php" as a "stringify" array
  **/
  this.sendToServer = function(numberArray){

    console.log("sending numbers to the server: ", numberArray);
    var stringForServer = JSON.stringify(numberArray);
    
    $.ajax({
      url: "script.php",
      type: "POST",
      data: ({numberArrayString : stringForServer}),
      success: function(msg){
        alert("send to server" + msg);
      }
    });


    /**
      on the server side in PHP (above called "script.php") do:
      $numberArray= json_decode($_POST['numberArrayString']); // create PHP array from stringify-json string
    **/

  }
  

  /**
    on click:
      collect numbers from the input fields and send them to the server
  **/
  this.sendToServerButton.on("click", function(){
    var numbers = [];
    $el.find("input").each(function(){
      var numberAsString = $(this).val();
      var number = parseInt(numberAsString);
      numbers.push( number );
    });
    t.sendToServer(numbers);
  });

}


var inputHandler = new InputHandler( $(".inputs") );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>
  Enter numbers in the input field. 
  Press enter to add additional numbers.
</p>
<div class="inputs">
  <button class="sendToServer">send to server</button><br>
</div>

于 2016-05-28T21:33:58.160 回答