Получение значений текстовых полей на странице - PullRequest
2 голосов
/ 14 декабря 2010

Позвольте мне просто сказать, что у меня есть несколько (много-много-много) текстовых полей на странице ... и я ввожу новое значение в одно из них, затем нажимаю кнопку ... Как я могу обновить базу данных только этим новое значение? Или, если это будет проще ... Как я могу обновить все эти текстовые поля в базе данных?

Спасибо:)

Ответы [ 6 ]

0 голосов
/ 05 сентября 2012

Вы можете сделать все это, используя javascript / jquery:

  <div id="inputs">
   <input type="text" id="in1" />
   <input type="text" id="in2" />
   <input type="text" id="in3" />
   ...
  </div> 

  $(function() {
     $('#inputs input').each(function() {
        $.ajax({
          type: 'post',
          url: 'your script url'
          data: { input : $(this).val(), id : $(this).attr('id') },
          success: function(result) {
            //do whatever you want with result
          }
        });
     });
  });

Я не проверял это, но уверен, что это сработает. Если у вас есть опыт работы с javascript / jquery, довольно легко обновить базу данных на основе заполненных полей. Вы можете проверить на стороне клиента (javascript), является ли любое из полей пустым.

забыл добавить: PHP сторона:

     function somescript() {
      if (!isset($_POST['input']) || ! isset($_POST['id']) {
         //do something to handle post not being set
      }

      $in = sanitize($_POST['input']);
      $id = sanitize($_POST['id']);
      //sanitize is a function that you should write to clean the user input

      //have a query and pass in the $in and $id
      //id can be used in your where statement
     }
0 голосов
/ 14 декабря 2010

Как я вижу, у него есть два подхода

1 - После того, как вы нажмете кнопку сохранения, вы соберете все значения в массив (с помощью javascrip) и передадите этот массив (в виде списка через запятую или что-то еще) на сервер. там внутри блока транзакции вы удаляете все существующие значения из таблицы и вставляете новые значения.

2 - Но если у вас много, много текстовых значений, используйте JavaScript, чтобы идентифицировать только изменяющиеся текстовые поля.

простая процедура будет,

  • выберите текстовое поле

    получить его значение для переменной

    когда пользователь вносит изменения в текст поле всегда сравнивать с исходное значение

    Если значение изменилось, отметьте этот текст коробка

    когда пользователь нажимает «сохранить», получают только измененные значения полей

ура

Sameera

0 голосов
/ 14 декабря 2010

идентифицирует значения текстового поля: предполагается, что каждое текстовое поле имеет атрибут name:

 <input type="text" name="firstName" value="please enter your first name"/>

вы можете получить доступ к значению текстового поля "foo" с помощью $ _POST ["foo"] Чтобы узнать, было ли изменено поле, вы должны сравнить его со значением по умолчанию.

if($_POST["firstName"]!="please enter your first name"){
   /*do databse update*/
}

Как именно вы делаете обновление базы данных, зависит от вашего приложения.

0 голосов
/ 14 декабря 2010

Чтобы обновить все:

Вы можете организовать свои входные данные следующим образом (1,2,3,4 - это идентификаторы записей в базе данных):

<input type="text" name="info[1]" value="blabla">
<input type="text" name="info[2]" value="blabla">
<input type="text" name="info[3]" value="blabla">
<input type="text" name="info[4]" value="blabla">
<!-- ... -->

Затем в вашем PHP-скрипте:

<?php
foreach($_POST['info'] as $id=>$data){
    mysql_query("UPDATE table SET data = '".mysql_escape_string($data)."' WHERE id = ".intval($id));
}
?>

Таким образом, для каждой записи будет один оператор UPDATE

Чтобы обновить только те, которые изменились:

Вы можете использовать событие onChange () javascript, чтобы увидеть, какие поля были изменены, и отправить только те.Просто будьте осторожны, если у пользователя отключен JavaScript, он никогда не сможет изменить какую-либо запись.

0 голосов
/ 14 декабря 2010
<?php
$sql = "UPDATE table_name SET";
foreach($_POST as $key=>$value){
    if($key != 'submit'){
        $sql .= " " . $key . " = '" . $value . "'";
    }
}
$sql = " WHERE ......";
?>

Это создаст для вас оператор sql. Вам просто нужно добавить в безопасности, а затем выполнение.

0 голосов
/ 14 декабря 2010

вы можете использовать jquery data () , чтобы сохранить первое состояние,

, когда вы хотите опубликовать его, публикуйте только текстовое поле, которое было изменено.

см. сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...