Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
1

Добавляется форма через Jquery, в неё вводятся данные. Надо отправить их на сервер

20.04.2012, 10:38. Просмотров 1991. Ответов 18
Метки нет (Все метки)

Добрый день. Появился вопрос.
На страницу по клику добавляется форма через Jquery, в неё вводятся данные и надо отправить их на сервер и кое-что с ними сделать. Как это осуществить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 10:38
Ответы с готовыми решениями:

Как отправить данные на сервер через POST запроса Content-Type: application/x-www-form-urlencoded
Есть сайт домен/api/webmaster/v2/addOrder.html?webmasterID=22&token=pass на него по инструкции...

Сервер на сокетах: Нельзя повторно отправить данные на сервер
Делаю сервер на сокетах. Первая отправка данных на сервер проходит успешно, сервер получает и...

Как можно отправить данные с одного сайта на другой с jQuery
Кто сможет подсказать как эту задачу решить Помогите найти решение как можно сделать передачу...

Отправить данные на сервер
Здравствуйте, у меня такой вопрос, есть функция опредленная, которая кодирует текст. Мне нужно...

Надо отправить данные на Интернет страницу и получить ответ
Вот ссылочка: http://www.salyk.kz/ru/Pages/findtaxpayers.aspx Налоговый комитет Министерства...

18
sau
2022 / 1635 / 271
Регистрация: 22.07.2011
Сообщений: 6,215
Завершенные тесты: 1
20.04.2012, 12:23 2
Javascript
1
$("form").submit();
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
20.04.2012, 19:09  [ТС] 3
Что-то не получается.
Код хандлера.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ WebHandler Language="C#" Class="Handler" %>
 
using System;
using System.Web;
 
public class Handler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write(p());
    }
    public String p(){
         string f = System.Web.HttpContext.Current.Request.Form["f"];
         return f;
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
 
}
Код aspx page.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="jquery.js"></script> 
    <script type ="text/javascript">
        function getnews() {
            $.get("Handler.ashx", function (data) {
                alert(data);
            });
        }
        function clicker() {
             var options = {
              target: "#f",
              url: "Handler.ashx",
              success: function() {
                        alert("Спасибо за комментарий!");
                }
        };
        $("#form1").ajaxSubmit(options);
 
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type = "text" id = "s" name = "s" />
    <input type = "submit" onclick = "clicker()"/>
    <label runat = "server" id = "f"></label>
    </div>
    </form>
</body>
</html>
0
sau
2022 / 1635 / 271
Регистрация: 22.07.2011
Сообщений: 6,215
Завершенные тесты: 1
20.04.2012, 19:43 4
HTML5
1
<form id="form1" runat="server" ClientIDMode="Static">...</form>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 <script type ="text/javascript">
        var HandlerUrl =  "<%= ResolveUrl("~/Handler.ashx") %>"; 
 
        function getnews() {
            $.get(HandlerUrl , function (data) {
                alert(data);
            });
        }
        function clicker() {
             var options = {
              target: "#f",
              url: HandlerUrl ,
              success: function() {
                        alert("Спасибо за комментарий!");
                }
        };
        $("#form1").ajaxSubmit(options);
 
        }
    </script>
P/S ajaxSubmit - не входит в стандарт, это плагин для которого нужно подключить скрипт.
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
20.04.2012, 20:08  [ТС] 5
Спасибо. Но, что-то не получается. Не могли бы Вы написать простой примерчик, чтобы, например, передались данные на сервер и тут же вывелись через alert?
0
sau
2022 / 1635 / 271
Регистрация: 22.07.2011
Сообщений: 6,215
Завершенные тесты: 1
20.04.2012, 20:14 6
Что именно не получается ?
Да, еще нужно в событие Onclick добавить return false; иначе форма отправится стандартным образом.
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
20.04.2012, 20:23  [ТС] 7
Цитата Сообщение от sau Посмотреть сообщение
Что именно не получается ?
Ну по идее, задача такова :
Через AJAX передаются данные с сервера (html-код), он добавляется на страницу. Далее, по клику на div добавляется ещё HTML-код такого вида (внизу) Далее, пользователь должен ввести изменения в input и отправить на сервер, на сервере должны произойти изменения в БД и дальнейшая перезагрузка div'a (или страницы, но, конечно, лучше div'a)

HTML5
1
2
3
4
5
6
<div class = "form" id = \"form0\">
 <form id=\"Form0\" method = \"post\" runat = \"server\" >
<input type = \"text\" name = \"\" id = "change0" /> 
<input type = "submit" value= "Изменить"/>
</form> 
</div>
0
sau
2022 / 1635 / 271
Регистрация: 22.07.2011
Сообщений: 6,215
Завершенные тесты: 1
20.04.2012, 20:48 8
На aspx странице может быть только один элемент Form, кроме того runat="server" уместен только если существует соответствующее определение элемента на стороне сервера.
Чувствуется что у вас огород не имеющий отношения к технологии asp net но пытающийся с ней состыковаться ), проще реализовать по правилам asp net-а. Но если нет возможности, то подход с JQuery должен работать.
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
20.04.2012, 20:52  [ТС] 9
А как же сделать всё это тогда?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<html xmlns="http://www.w3.org/1999/xhtml" > 
  <head> 
      <title>Simple XMLHttpRequest page</title> 
      <script type="text/javascript" src="jquery.js"></script> 
      <script type = "text/javascript" src = "ScheduleReader.js"></script>
      <link rel="stylesheet" type="text/css" href="ScheduleStyle.css">
  </head> 
  <body> 
    <div id = "main">
 
    </div>
  </body> 
  </html>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
var i = 0;
function getnews() {
    $.get("LoadSchedule.ashx", function (data) {
        $('#main').html(data);
    });
}
getnews();
function deleteform0() {
    $('#form0').remove();
    $('div#lesson0').attr('onClick', 'textformadd0()');
}
function textformadd0() {
    $('#lessoncont0').append('<div class = "form" id = \"form0\"> <input type = \"text\" name = \"\" id = "change0" /> <input type = "submit" value= "Изменить"/> </div>');
    $('div#lesson0').attr('onClick', 'deleteform0()');
}
function deleteform1() {
    $('#form1').remove();
    $('div#lesson1').attr('onClick', 'textformadd1()');
}
function textformadd1() {
    $('#lessoncont1').append('<div class = "form" id = \"form1\"> <input type = \"text\" name = \"login\" id = "change1" />  </div>');
    $('div#lesson1').attr('onClick', 'deleteform1()');
}
function deleteform2() {
    $('#form2').remove();
    $('div#lesson2').attr('onClick', 'textformadd2()');
}
function textformadd2() {
    $('#lessoncont2').append('<div class = "form" id = \"form2\"><input type = \"text\" name = \"login\" id = "change2" /> </div>');
    $('div#lesson2').attr('onClick', 'deleteform2()');
} function deleteform3() {
    $('#form3').remove();
    $('div#lesson3').attr('onClick', 'textformadd3()');
}
function textformadd3() {
    $('#lessoncont3').append('<div class = "form" id = \"form3\"><input type = \"text\" name = \"login\" id = "change3" />  </div>');
    $('div#lesson3').attr('onClick', 'deleteform3()');
} function deleteform4() {
    $('#form4').remove();
    $('div#lesson4').attr('onClick', 'textformadd4()');
}
function textformadd4() {
    $('#lessoncont4').append('<div class = "form" id = \"form4\"> <input type = \"text\" name = \"login\" id = "change4" />  </div>');
    $('div#lesson4').attr('onClick', 'deleteform4()');
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<%@ WebHandler Language="C#" Class="LoadSchedule" %>
 
using System;
using System.Web;
using System.Xml;
 
public class LoadSchedule : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) 
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write(Update("Max Panachev"));
    }
    public void Reader()
    {
        string change = System.Web.HttpContext.Current.Request.Form["change0"];
    }
    public string Update(string Name)
    {
        string xmlPath = System.Web.HttpContext.Current.Server.MapPath("schedule.xml");
        string s = "";
        XmlDocument data = new XmlDocument();
        data.Load(xmlPath);
        XmlNode node = data.DocumentElement.SelectSingleNode("/schedule/sch[@sensei='" + Name + "']");
        
        XmlNodeList ordersList = data.DocumentElement.ChildNodes;
        System.Text.StringBuilder str = new System.Text.StringBuilder();
        str.Append("<div id = \"name\">");
        str.Append(node.Attributes[0].Value + "<br/>");
        str.Append("</div>");
        str.Append("<div id =\"day\">");
        str.Append(node.ChildNodes[0].Name + "<br/>");
        str.Append("</div>");
        str.Append("Колличество пар : "+node.ChildNodes[0].ChildNodes.Count + "<br/>");
        for (int i = 0; i < node.ChildNodes[0].ChildNodes.Count; i++)
        {
            str.Append("<br><div class = \"timecont\" id = \"timecont"+i+"\">");
            str.Append("<div class = \"time\" id =\"time"+i+"\">");
            str.Append(node.ChildNodes[0].ChildNodes[i].Attributes[0].Value + "<br/>");
            str.Append("</div>");
            str.Append("</div>");
            str.Append("<div class = \"lessoncont"+"\" id = \"lessoncont"+i+"\">");
            str.Append("<div id = \"lesson"+i+"\" onClick = \"textformadd"+i+"()\">");
            str.Append(node.ChildNodes[0].ChildNodes[i].InnerText + "<br/>");
            str.Append("</div>");
            str.Append("</div>");
        }
        
        return str.ToString();
    }
    public bool IsReusable {
        get {
            return false;
        }
    }
 
}
0
HF
169 / 163 / 53
Регистрация: 09.09.2011
Сообщений: 603
Завершенные тесты: 19
20.04.2012, 23:59 10
Честно сказать тоже не могу понять что именно нужно сделать. НО! По-моему понимаю, так как судя по названию темы, я с таким работаю регулярно.
Во-первых, вы не сказали как именно вы пытаетесь получить данные. Я всегда проверяю это через коллекцию Request.Form. Там сразу видно что именно вы смогли передать, а что нет.
Во-вторых, куча примеров и не понятно какой же из них на ваш взгляд верный. Подозреваю, что вы неверно создаёте элемент. Соответственно он не передаётся в запросе. Используйте обязательно параметры id=... и name=... (name Обязательно для ASP).
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
21.04.2012, 07:22  [ТС] 11
А что не понятно?
У меня на страничке есть форма, которую я добавил с помощь jquery. В этом форму что-то вводят и это передаётся на сервер. На сервере то, что мне ввели, меняет одно значение в БД и это значение выводится обратно на страницу.
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
22.04.2012, 14:13  [ТС] 12
Ладно. Опишу проблему ещё раз. С помощью jquery добавляются input'ы, в них вводятся данные и эти данные мне надо передать на сервер. Как это сделать?

Если что, то вот проект.
0
Вложения
Тип файла: rar Schedule.rar (36.7 Кб, 13 просмотров)
HF
169 / 163 / 53
Регистрация: 09.09.2011
Сообщений: 603
Завершенные тесты: 19
23.04.2012, 12:12 13
Как я уже сказал выше, при добавлении элемента, который должен будет передать данные через POST, нужно обязательно указать свойство name=... .

Javascript
1
$('#' + id).append('<div id = "soska" > <input type = "text" maxlength = "30" id = "F' + id +'  name = "F' + id +' "/></div>');
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
23.04.2012, 15:48  [ТС] 14
А не могли бы вы показать, как теперь отправить это на сервер и получить данные там ?
0
HF
169 / 163 / 53
Регистрация: 09.09.2011
Сообщений: 603
Завершенные тесты: 19
23.04.2012, 16:09 15
Цитата Сообщение от dixonich Посмотреть сообщение
А не могли бы вы показать, как теперь отправить это на сервер и получить данные там ?
Точно так же как всё отправляется обычно. Написать (добавить данные в поле) и нажать кнопку Отправить (или что у вас там делает PostBack запрос). А данные получают через коллекцию параметров, переданных через POST - Page.Form.
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
23.04.2012, 20:32  [ТС] 16
Не знаю. Не получается тут и всё)



Javascript
1
$('#' + id).append('<form id = "myForm"><div id = "soska" > <input type = "text" maxlength = "30" id = "F' + id + 'name = "F' + id + '"/><button>Изменить</button></div></form>');
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready(function () {
 
    $('#myForm').submit(function () {
        $.ajax({
            type: "POST",
            url: "C:\Users\def\Documents\Visual Studio 2010\WebSites\KVM\Schedule\ReaderSchedule.ashx",
            data: $("#Flesson2").val(),
            success: function (msg) {
                alert("Data Saved: " + msg);
            }
        });
        return false;
    });
 
});
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ WebHandler Language="C#" Class="ReaderSchedule" %>
 
using System;
using System.Web;
using System.Xml;
public class ReaderSchedule : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string f = context.Request.Form["Flesson2"];
        context.Response.Write("ss");
 
    }
    
    public bool IsReusable {
        get {
            return false;
        }
    }
 
}
0
sau
2022 / 1635 / 271
Регистрация: 22.07.2011
Сообщений: 6,215
Завершенные тесты: 1
23.04.2012, 20:38 17
Мельком глянул проект, если это все что планируется, то в такой архитектуре точно смысла нету, проще сделать по правилам asp net-а (ближе к такому подходу будет MVC). ну и почитать книжецу для надежности.

Касательно примера:
url: "C:\Users\def\Doc... - тут вы ссылаетесь на локальные файлы пользователя, а не на обработчик веб.сервера.
нужно так:
url: '<%=ResolveUrl("~/ReaderSchedule.ashx")%>'
0
dixonich
2 / 2 / 1
Регистрация: 23.03.2011
Сообщений: 62
23.04.2012, 20:48  [ТС] 18
Спасибо. Изменил путь. Но, всё-равно что-то не работает. Не выводится сообщения "Data Saved" alert'ом
0
HF
169 / 163 / 53
Регистрация: 09.09.2011
Сообщений: 603
Завершенные тесты: 19
23.04.2012, 22:02 19
(ошибся)
0
23.04.2012, 22:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2012, 22:02

Не получается отправить ajax запрос через JQuery
Есть форма с текстовыми полями и кнопкой submit. Внизу располагается панель с картинками. Мне...

Отправить данные из TextView на сервер
Как отправить данные с TextView и других текстовых view на сервер по нажатию на кнопку?

Как отправить данные на сервер?
Есть форма, на ней таблица, вот такая примерно: &lt;table id=&quot;IngredientTable&quot; runat = &quot;server&quot;&gt;......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru