Сравнение полей формы с полями базы данных и выделение полей формы - PullRequest
0 голосов
/ 09 ноября 2009

Можете ли вы помочь мне в следующих двух сценариях (PHP + MYSQL)

Scenario1: Мне нужно сравнить значения полей формы HTML со значениями полей базы данных и выделить поля формы некоторым цветом, значения которого отличаются от значений базы данных, перед отправкой формы (чтобы предупредить пользователя).

Scenario2:

При загрузке формы мне нужно сравнить значения, представленные в 2 разных таблицах базы данных (таблицы имеют разные имена столбцов, но информация одинакова). поля, которые не совпадают, должны быть выделены в форме HTML, чтобы указать пользователям, что основные данные отличаются от вторичных данных.

Не могли бы вы мне помочь, какой эффективный способ сделать это (сравнение и выделение значений формы).

спасибо заранее Навин

Ответы [ 2 ]

0 голосов
/ 09 ноября 2009

Поскольку вы хотите обработать сценарий один перед отправкой формы, вам нужно использовать JavaScript для сравнения. Если вы знаете структуру формы перед созданием страницы, она должна быть восточной, чтобы написать серию сравнений, используя jQuery , change () и скрытые поля в форме.

Для второго сценария это немного зависит от вашего определения «эффективный». Если вы хотите, чтобы он использовал наименьший ресурс сервера, вы можете отправить страницу обратно с двумя таблицами базы данных, введенными в таблицы с именами, и снова использовать JavaScript, чтобы выделить различия. Если вам нужно решение, которое не зависит от JS, запущенного в браузере клиента, вы можете выполнить сравнение в запросе к MySQL. Выполнение сравнения в самом PHP, вероятно, является самым простым в коде и, следовательно, наиболее эффективным для программиста, но медленнее выполнения (если это имеет значение, зависит от нескольких факторов, таких как размер таблицы).

0 голосов
/ 09 ноября 2009

Сценарий 1

<form method="post">
  <? foreach ($fields as $field) : ?>
    <? if (in_array($diff_fields, $field)) : ?>
    <div style="background-color:red">
    <? else : ?>
    <div>
    <? endif; ?>
      <input type="text" value="<?= $record[$field] ?>"/>
    </div>
  <? endforeach; ?>
</form>

$fields = array('id', 'name', 'created_at');
$diff_fields = array();

$record = fetch_from_db($record_id);

foreach ($fields as $field) {
  if (isset($record[$field]) && $record[$field] != $_POST[$field]) {
    $diff_fields[] = $field;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...