2015-01-07 2 views
1

Здравствуйте, ребята, у меня есть этот код, ниже которого динамически добавляется текстовое поле за клик. мой вопрос: как я могу сохранить динамически созданное текстовое поле в базу данных MYSQL?Сохранить динамическое текстовое поле для базы данных

Я хочу сохранить каждое текстовое поле в каждой строке. это означает одно текстовое поле = одна строка

например

ID | NAME | Training (the textbox)| 
1 john Driving 
2 john swimming 
3 john running 

<!DOCTYPE html> 
    <html> 
    <head> 
    <title>Add or Remove text boxes with jQuery</title> 
    <script type="text/javascript" src="//code.jquery.com/jquery-latest.js"></script> 
    <style type="text/css"> 
    <!-- 
    #main { 
     max-width: 800px; 
     margin: 0 auto; 
    } 
    --> 
    </style> 
    </head> 
    <body> 
    <div id="main"> 
     <h1>Add or Remove text boxes with jQuery</h1> 
     <div class="my-form"> 
      <form role="form" method="post"> 
        <label for="box1"><span class="namer">Name</span></label> 
        <input type="text" name="name" /> 
       <p class="text-box"> 
        <label for="box1">Box <span class="box-number">1</span></label> 
        <input type="text" name="boxes[]" value="" id="box1" /> 
        <a class="add-box" href="#">Add More</a> 
       </p> 
       <p><input type="submit" value="Submit" /></p> 
      </form> 
     </div> 
    </div> 
    <script type="text/javascript"> 
    jQuery(document).ready(function($){ 
     $('.my-form .add-box').click(function(){ 
      var n = $('.text-box').length + 1; 
      if(5 < n) { 
       alert('Stop it!'); 
       return false; 
      } 
      var box_html = $('<p class="text-box"><label for="box' + n + '">Box <span class="box-number">' + n + '</span></label> <input type="text" name="boxes[]" value="" id="box' + n + '" /> <a href="#" class="remove-box">Remove</a></p>'); 
      box_html.hide(); 
      $('.my-form p.text-box:last').after(box_html); 
      box_html.fadeIn('slow'); 
      return false; 
     }); 
     $('.my-form').on('click', '.remove-box', function(){ 
      $(this).parent().css('background-color', '#FF6C6C'); 
      $(this).parent().fadeOut("slow", function() { 
       $(this).remove(); 
       $('.box-number').each(function(index){ 
        $(this).text(index + 1); 
       }); 
      }); 
      return false; 
     }); 
    }); 
    </script> 
    </body> 
    </html> 



    // MY PHP Insert code 

    <?php 
    $con = mysql_connect("localhost","root",""); 
    if (!$con){ 
    die("Can not connect: " . mysql_error()); 
    } 
    mysql_select_db("SLL",$con); 

//please assume boxes = training 

    $name = $_POST['name']; 
    $training= $_POST['boxes']; 

    $AddQuery ="INSERT INTO db (name,training)VALUES ($name,training)" 

    mysql_query($AddQuery, $con); 
    ?> 
+0

Где ваш PHP? Вам понадобится это, чтобы вставить – ggdx

+0

. Я знаю, кто создает одну команду вставки. но я не знаю, как закодировать множественную вставку из динамического текстового поля. пожалуйста, помогите – Nixxx

+0

Я добавил свой код вставки. – Nixxx

ответ

2

Почти там (кроме нечетного опечатка), $_POST['boxes'] представляет собой массив, так что просто цикл по каждому элементу (explanation) через каждый ключ в массиве.

<?php 
    $con = mysql_connect("localhost","root",""); 
    if (!$con){ 
    die("Can not connect: " . mysql_error()); 
    } 
    mysql_select_db("SLL",$con); 

    $name = $_POST['name']; 

//please assume boxes = training 
    foreach($_POST['boxes'] as $textbox){ 
     $training= $textbox; 
     $AddQuery ="INSERT INTO db (name,training)VALUES ($name,$training)"; 
     mysql_query($AddQuery, $con); 

    } 
?> 

ОБНОВЛЕНИЕ Для того, чтобы петли через два или более входных массивов, т.е. name="boxes[]" и name="amount[]", то нужно будет предположить, что каждый boxes[] является относительно amount[], т.е. boxes[0] идет с amount[0], boxes[1] идет с amount[1] , boxes[n] идет с amount[n]. Таким образом, вам понадобится счетчик, который увеличивается каждый раз, когда цикл заканчивается/перезапускается. См. $i, вы увидите, что значение $i увеличивается на 1 в конце каждого раунда вокруг цикла, и это фиксируется суммой по ключу как $_POST['amount'][$i].

Пересмотренный цикл будет что-то вроде

$i = 0; 
foreach($_POST['boxes'] as $textbox){ 
    $training= $textbox; 
    $amount = $_POST['amount'][$i]; 
    $AddQuery ="INSERT INTO db (name,training,amount)VALUES ($name,$training,$amount)"; 
    mysql_query($AddQuery, $con); 
    $i++; 
} 
+0

привет спасибо !!!!! он решает мою проблему !. im новичок, и вы мне помогаете. Благодаря! – Nixxx

+0

Добро пожаловать! Рад, что это сработало – ggdx

+0

, но как я могу добавить 2 массива внутри foreach ?? я имею в виду как этот foreach ($ _ POST ['boxes'] как $ textbox И $ _POST ['amount'] как $ amount) {// здесь код – Nixxx