2010-04-26 2 views
1

Я новичок в PHP и MySQL Я хочу, чтобы пользователь мог хранить несколько имен и значения в таблицах базы данных MySQL с именем names с использованием PHP. Я буду динамически создавать поля формы с помощью JQuery каждый раз, когда пользователь нажимает на ссылку, чтобы пользователь мог ввести от 1 до 1 000 000 разных имен и значения, которые будут сохранены в таблице с именем names.PHP и MySQL - проблемы с сохранением и циклизацией

Так как я спросил мой последний вопрос, я понял, как хранить свои ценности от моей формы, используя петлю for, но каждый раз, когда я петлю моих ценностей, когда я добавить один или несколько динамических полое поле второй формы имени meaning не спасут введенное значение также меняет свои динамические поля формы, повторяя удвоение цикла, утроение и т. д. введенные значения в базу данных все зависит от того, сколько полей формы добавлено динамически. Мне было интересно, как я могу исправить эти проблемы?

На боковой ноте я заменил запрос эхом, чтобы увидеть введенные значения.

Вот код PHP.

<?php 
if(isset($_POST['submit'])) { 
$mysqli = mysqli_connect("localhost", "root", "", "site"); 
$dbc = mysqli_query($mysqli,"SELECT * FROM names WHERE userID='$userID'"); 

$name = $_POST['name']; 
$meaning = $_POST['meaning']; 

if(isset($name['0']) && mysqli_num_rows($dbc) == 0 && trim($name['0'])!=='' && trim($meaning['0'])!=='') { 

for($n = 0; $n < count($name); $n++) { 
    for($m = 0; $m < count($meaning); $m++) { 
     echo $name[$n] . '<br />'; 
     echo $meaning[$m] . '<br /><br />'; 
     break; 
    } 
} 

} 

} 
?> 

И вот код HTML.

<form method="post" action="index.php"> 
<ul> 
    <li><label for="name">Name: </label><input type="text" name="name[]" id="name" /></li> 
    <li><label for="meaning">Meaning: </label><input type="text" name="meaning[]" id="meaning" /></li> 
    <li><input type="submit" name="submit" value="Save" /></li> 
</ul> 
</form> 



В случае необходимости я буду размещать код JQuery.

ответ

1

Если вы посмотрите на представленный массив, ситуация может понятнее:

echo('<pre>' . print_r($_POST, TRUE) . '</pre>');

В случае, если вы еще не знаете, как решить эту проблему:

for($index = 0; $index < count($_POST['name']; $index++) 
{ 
    echo 'name: ' . $_POST['name'][$index] . '<br />'; 
    echo 'meaning: ' . $_POST['meaning'][$index] . '<br /><br />'; 
}
1

в первую очередь и использовать table вместо ul li

мой код приведен ниже, что работает отлично, и можно увидеть here

JAVASCRIPT

<script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
    $("#addMore").click(function(){ 
    $("#nameline").clone().insertAfter("#nameline").slideDown(500); 
    $("#meaningline").clone().insertAfter("#nameline").slideDown(500); 
    $("#name:last").val("").focus(); 
    $("#meaning:last").val(""); 

}); 
    }); 
</script> 

PHP

<form method="post" action=""> 
<input type="button" name="addMore" id="addMore" value="add"> 
<table id="myTable"> 
    <tbody> 
    <tr id="nameline"> 
     <td><label for="name">Name: </label><input type="text" name="name[]" id="name" /></td> 
    </tr> 
    <tr id="meaningline"> 
     <td><label for="meaning">Meaning: </label><input type="text" name="meaning[]" id="meaning" /></td> 
    </tr> 
    <tr><td><input type="submit" name="submit" value="Save" id="submit" /></td></tr> 
    </tbody> 
</table> 
</form> 
<?php print_r($_POST);?> 

для получения дополнительной информации и может refere к this link

+0

@I Как PHP большой работы – nik

Смежные вопросы