Как получить доступ к входу формы HTML от кода asp.net позади [закрытого]

Я вижу, что это старый пост, но я нашел его полезным и подумал, что поделился бы решением, аналогичным тому, что предложил @kzqai:

У меня есть функция, которая получает два параметра, такие как ...

function getTableInfo($inTableName, $inColumnName) {
    ....
}

Внутри я проверяю массивы, которые я установил, чтобы убедиться, что доступны только таблицы и столбцы с «блаженными» таблицами:

$allowed_tables_array = array('tblTheTable');
$allowed_columns_array['tblTheTable'] = array('the_col_to_check');

Затем проверка PHP перед работающий PDO выглядит как ...

if(in_array($inTableName, $allowed_tables_array) && in_array($inColumnName,$allowed_columns_array[$inTableName]))
{
    $sql = "SELECT $inColumnName AS columnInfo
            FROM $inTableName";
    $stmt = $pdo->prepare($sql); 
    $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
33
задан 23 December 2008 в 15:39
поделиться

6 ответов

При доступе к простой HTML-форме она должна быть отправлена серверу через кнопку отправки (или с помощью сообщения JavaScript). Это обычно означает, что Ваше определение формы будет похоже на это (я ухожу памяти, удостоверьтесь, что Вы проверяете, что элементы HTML корректны):

<form method="POST" action="page.aspx">

<input id="customerName" name="customerName" type="Text" />
<input id="customerPhone" name="customerPhone" type="Text" />
<input value="Save" type="Submit" />

</form>

необходимо быть в состоянии получить доступ к customerName и customerPhone данным как это:

string n = String.Format("{0}", Request.Form["customerName"]);

, Если Вы имеете method="GET" в форме (не рекомендуемый, она портит Ваше пространство URL), необходимо будет получить доступ к данным формы как это:

string n = String.Format("{0}", Request.QueryString["customerName"]);

Это, конечно, будет только работать, если форма была 'Отправлена', 'Отправлена', или сделана через 'Обратную передачу'. (т.е. кто-то нажал кнопку 'Save', или это было сделано программно с помощью JavaScript.)

кроме того, имейте в виду, что доступ к этим элементам этим способом может только быть сделан, когда Вы не используете управление сервером (т.е. runat="server") с управлением сервером, идентификатор и имя отличаются.

66
ответ дан Chewbacca17 11 October 2019 в 07:47
поделиться

Редактирование: мысль о чем-то еще.

Вы говорите создание формы динамично - делают Вас, действительно означают < form> и его содержание, потому что asp.net не соглашается с несколькими формами на странице и она уже создает одну uberform для Вас.

0
ответ дан annakata 11 October 2019 в 07:47
поделиться

То, что я предполагаю, - то, что необходимо установить те входные элементы на runat = "сервер" .

, Таким образом, Вы не будете в состоянии получить доступ к управлению

<input type="text" name="email" id="myTextBox" />

, Но Вы будете в состоянии работать с

<input type="text" name="email" id="myTextBox" runat="server" />

И читать из него при помощи

string myStringFromTheInput = myTextBox.Value;
21
ответ дан Community 11 October 2019 в 07:47
поделиться

Самым простым путем IMO должен включать идентификатор, и runat сервер наклеивают все Ваши элементы.

<div id="MYDIV" runat="server" />

, Так как это походит, они динамично вставляются средства управления, Вы могли бы ценить FindControl ().

2
ответ дан rlb.usa 11 October 2019 в 07:47
поделиться

Так как Вы используете код asp.net - позади, добавьте идентификатор к элементу и runat=server.

можно тогда сослаться на объекты в коде позади.

0
ответ дан Eppz 11 October 2019 в 07:47
поделиться

Это должно обычно делаться с Request.Form["elementName"].

, Например, если Вы имеете <input type="text" name="email" /> тогда, можно использовать Request.Form["email"] для доступа к его значению.

9
ответ дан Gant 11 October 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: