2016-05-28 5 views
-4

Добрый вечер,HTML в PHP массивы

Я искал и пытался некоторое время, чтобы построить небольшую программу, я хочу, чтобы пользователь ввел неизвестное количество чисел (он может ввести столько, сколько он хотел бы), и я хочу сделать массив из них, везде в Интернете продолжает использовать множество «input type =» text «....», но я не знаю, сколько будет вводить пользователь. И i не хотите, чтобы страница продолжала обновляться, поэтому, если возможно, я хотел бы сразу отправить все номера на одну и ту же страницу или на другую страницу, создать массив из них, чтобы я мог завершить программу, используя функции, основанные на этом массиве.

EDIT: я первым использовал <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 ", "р");

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

print_r($numbers); 
echo count($numbers);` 
+1

Вы пробовали что-нибудь в вашем конце? –

+0

Я новичок в php, начал три месяца назад, и это мой первый раз что-то сделал, я попробовал тег input type = text ... multiple, но не знал, как его использовать, пытался запросить с другой страницы и сохраните значение там, но он постоянно сбрасывается каждый раз, я пытался изменить имя формы на ex num [], но в итоге получилось так же, как и раньше. У меня нет идей, и у меня недостаточно опыта, чтобы попробовать другие вещи. – Cheezo

+0

Я бы с удовольствием, проблема в том, что д-р моего ученика сказал студентам ИТ сделать программу в первой главе темы (вероятности) , все функции, которые мне нужны, готовы, все, что я messing - это массив чисел, которые я буду использовать, и я не могу найти способ его создания: / – Cheezo

ответ

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>