在页面上获取文本字段的值

时间:2010-12-14 14:40:18

标签: php mysql html database forms

让我们说我在页面上有一些(很多很多)文本字段...然后我在其中一个中输入一个新值,然后单击一个按钮......我怎样才能更新数据库新价值?或者,如果它更容易......我如何将所有这些文本字段更新到数据库?

谢谢:)

6 个答案:

答案 0 :(得分:0)

你可以使用jquery data()来存储第一个状态

如果要发布,请仅发布已更改的文本框。

请参阅此post

答案 1 :(得分:0)

<?php
$sql = "UPDATE table_name SET";
foreach($_POST as $key=>$value){
    if($key != 'submit'){
        $sql .= " " . $key . " = '" . $value . "'";
    }
}
$sql = " WHERE ......";
?>

这将为您生成sql语句。您只需添加安全性然后执行即可。

答案 2 :(得分:0)

更新所有内容:

您可以像这样组织输入(1,2,3,4 - 数据库中的记录ID):

<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语句

仅更新已更改的内容:

您可以使用javascript的onChange()事件来查看更改了哪些字段,并仅提交这些字段。请注意,如果用户禁用了javascript,他就永远无法更改任何记录。

答案 3 :(得分:0)

识别文本字段值:每个文本字段都应具有“名称”属性:

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

您可以使用$ _POST [“foo”]访问文本字段“foo”的值 要知道字段是否已更改,您必须将其与默认值进行比较。

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

数据库更新的准确程度取决于您的应用程序。

答案 4 :(得分:0)

正如我所看到的,它有两种方法

1 - 单击保存按钮后,将所有值收集到数组(使用javascrip)并将该数组(以逗号分隔的列表或其他内容)传递给服务器。在事务块内部,您从表中删除所有现有值并插入新值。

2 - 但如果您有许多文本值,请使用javascript来识别更改的文本框。

简单的程序就是,

  • 选择文字字段

    将其值赋予变量

    当用户对文本进行更改时 字段总是比较 原始值

    如果值已更改,请标记该文本 框

    当用户点击“保存”时,只获取 更改了值字段

欢呼声

sameera

答案 5 :(得分:0)

你可以使用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
     }