У меня есть мой Javascript-код, который добавляет динамическое текстовое поле (строка). Моя проблема заключается в том, как сохранить значения из динамического текстового поля в базу данных с помощью PHP-скрипта? Надеюсь, ты поможешь мне, ребята. Спасибо!
<script type="text/JavaScript"> function addRow(r){ var root = r.parentNode;//the root var allRows = root.getElementsByTagName('tr');//the rows' collection var cRow = allRows[0].cloneNode(true)//the clone of the 1st row var cInp = cRow.getElementsByTagName('input');//the inputs' collection of the 1st row for(var i=0;i<cInp.length;i++){//changes the inputs' names (indexes the names) cInp[i].setAttribute('name',cInp[i].getAttribute('name')+'_'+(allRows.length+1)) } root.appendChild(cRow); } function shownames(){ var allInp=document.getElementsByTagName('input'); for(var i=0;i<allInp.length;i++){ alert(allInp[i].name) } } </script>
Мой HTML-код:
<form method="POST" action="#"> <table width="1024" border="0" cellspacing="6" cellpadding="0"> <tr> <td width="195"><div class="user"><input type="text" name="user_a" id="user" tabindex="6"/></div></td> <td width="410"><div class="reported"><input type="text" name="user_b" id="reported" tabindex="7"/></div></td> <td width="399"><div class="reported"><input type="text" name="user_c" id="reported" tabindex="8"/></div></td> <td width="10"><input name="button" type="button" value="+" onclick="addRow(this.parentNode.parentNode)"></td> </tr> </table> </form>
<html> <head> <title>Dynamic Form</title> <script language="javascript"> <?php $i = 1; ?> function changeIt() { //alert(i); //var i = 1; my_div.innerHTML = my_div.innerHTML +"<br><input type='text' name='mytext[<?php echo $i;?>]'><input type='text' name='mytext[<?php echo $i+1;?>]'><input type='text' name='mytext[<?php echo $i+2;?>]'><br>"; <?php $i = $i+3; ?> } </script> </head> <body> <form name="form" action="http://localhost/try.php" method="post"> <!--<input type="text" name=t1>--> <input type="button" value="test" onClick="changeIt()"> <div id="my_div"></div> <p class="submit"><button type="submit">Register</button></p> </body>
try.php (это файл, в котором вы будете ловить значения, а затем вставлять в sql)
<?php $var = $_POST['mytext']; echo $var[1].$var[2]; ?>
Вы должны использовать только имя текстового поля, которое добавляется динамически.
$('form').submit(function() { var data=($(this).serialize()); return false; });
Эта функция получает все значения элементов и создает одну строку, которая хранится в данных, теперь данные передаются в ajax-вызове.
$('form').submit(function() { var data=($(this).serialize()); $.ajax({ type: "POST", url: "your_some.php", data: data, }).done(function( msg ) { alert( "Data Saved: " + msg ); }); });