|
Передача данных из формы javascript
Уважаемые! Подскажите новичку как вытащить из этой формы данные ?..
А именно нужно что бы пользователь выбирал сколько ему нужно полей от 1 до 10 и все эти поля заносились в БД mysql поле в новой строке.. Сейчас в этом коде после нажатия субмит срабатывает алерт а как вывести это в php я не могу понять
$(document).ready(function(){
var i = $('input').size() + 1;
$('#add').click(function() {
$('<div><input type="text" class="field" name="dynamic[]" value="' + i + '" /></div>').fadeIn('slow').appendTo('.inputs');
i++;
});
$('#remove').click(function() {
if(i > 1) {
$('.field:last').remove();
i--;
}
});
$('#reset').click(function() {
while(i > 2) {
$('.field:last').remove();
i--;
}
});
// here's our click function for when the forms submitted
$('.submit').click(function(){
var answers = [];
$.each($('.field'), function() {
answers.push($(this).val());
});
if(answers.length == 0) {
answers = "none";
}
alert(answers);
return false;
});
});
<body> <div id="container"> <div class="dynamic-form"> <a href="#" id="add">Добавить</a> | <a href="#" id="remove">Удалить</a> | <a href="#" id="reset">Сбросить</a> <form> <div class="inputs"> <div><input type="text" name="dynamic[]" class="field" value="1"></div> </div> <input name="submit" type="button" class="submit" value="ОК"> </form> </div> </div> </body></html> |
вместо алерта отправьте данные пост запросом на пхп файл http://api.jquery.com/jQuery.post/
|
не совсем понимаю как грамотно написать это :(
|
както так $.post("test.php", { answers } ); а в test.php обрабатывать $_POST['answers']
|
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
<script>
$(document).ready(function(){
var i = $('input').size() + 1;
$('#add').click(function() {
$('<div><input type="text" class="field" name="dynamic[]" /><input type="text" class="field" name="dynamic[]" /></div>').fadeIn('slow').appendTo('.inputs');
i++;
});
$('#remove').click(function() {
if(i > 1) {
$('.field:last').remove();
$('.field:last').remove();
i--;
}
});
$('#reset').click(function() {
while(i > 2) {
$('.field:last').remove();
i--;
}
});
// here's our click function for when the forms submitted
$('.submit').click(function(){
var answers = [];
$.each($('.field'), function() {
answers.push($(this).val());
});
// Отсылаем паметры
$.ajax({
type: "POST",
url: "new.php",
data: "data="+answers,
// Выводим то что вернул PHP
success: function(html) {
//предварительно очищаем нужный элемент страницы
$("#result").empty();
//и выводим ответ php скрипта
$("#result").append(html);
}
});
return false;
});
});
</script>
<style>
input{
border:1px solid #ccc;
padding:8px;
font-size:14px;
width:300px;
}
.submit{
width:110px;
background-color:#FF6;
padding:3px;
border:1px solid #FC0;
margin-top:20px;}
</style>
<body>
<div id="container">
<div class="dynamic-form">
<a href="#" id="add">Добавить</a> | <a href="#" id="remove">Удалить</a> | <a href="#" id="reset">Сбросить</a>
<form>
<div class="inputs">
<div><input type="text" name="dynamic[]" class="field" >
<input type="text" name="dynamic[]" class="field" ></div>
</div>
<input name="submit" type="button" class="submit" value="ОК">
</form>
<div id="result"></div>
</div>
</div>
</body></html>
Это полный код... принимаю так
<?
$data=$_POST[data];
$array = explode(',', $data);
foreach ($array as $number=>$value)
{
echo "в поле ".$number;
echo " значение ".$value;
echo "<br>";
}
?>
Вопрос Как ограничить чистой добавляемый полей ?? допустим что бы пользователь мог добавить только 10 полей и все |
У тебя в переменной i содержится количество полей. После добавления поля делай проверку, если лимит исчерпан - скрывай кнопку. По клику кнопки удаления проявляй кнопку добавления.
|
какой функцией или методом скрыть ссылку и потом вернуть? (кнопку добавить)
|
$('#add').hide() | $('#add').show()
|
теперь проблема в следующем... отдельно в файле этот код работает... когда я его вставляю в заполненую страницу которая содержит различные инпуты и кнопки СТОП на добавление полей работает только после нажатия на кнопку Сброс!
<script>
$(document).ready(function(){
var i = $('input').size() + 1;
$('#add').click(function() {
$('<div><input type="text" class="field" name="dynamic[]" /> <input type="text" class="field" name="dynamic[]" /></div>').fadeIn('slow').appendTo('.inputs');
i++;
if(i==5){
$('#add').hide()
}
});
$('#remove').click(function() {
if(i > 1) {
$('.field:last').remove();
$('.field:last').remove();
i--;
$('#add').show()
}
});
$('#reset').click(function() {
while(i > 2) {
$('.field:last').remove();
$('.field:last').remove();
i--;
$('#add').show()
}
});
// here's our click function for when the forms submitted
$('.submit').click(function(){
var answers = [];
$.each($('.field'), function() {
answers.push($(this).val());
});
// Отсылаем паметры
$.ajax({
type: "POST",
url: "new.php",
data: "data="+answers,
// Выводим то что вернул PHP
success: function(html) {
//предварительно очищаем нужный элемент страницы
$("#result").empty();
//и выводим ответ php скрипта
$("#result").append(html);
}
});
return false;
});
});
|
Хз, живой пример запили через [html run][/html]
И не нужно совать в цикл .hide() / .show() |
| Часовой пояс GMT +3, время: 23:08. |
|