Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新时预先填写php表单_Php_Oop_Sql Update_Crud - Fatal编程技术网

更新时预先填写php表单

更新时预先填写php表单,php,oop,sql-update,crud,Php,Oop,Sql Update,Crud,我目前只使用一个表单进行更新和插入,效果很好。但我想在只更新时预先填充它。我不知道该怎么做。如果我用php变量设置该值,我会在日志中得到一个错误,表明它没有定义。感谢您的帮助。多谢各位 表格如下: <?php include_once('Crud_class.php'); $obj = new Crud("loocalhost","root","password","mydb"); $id = $_GET['id']; if (isset($_GET['id']) &&

我目前只使用一个表单进行更新和插入,效果很好。但我想在只更新时预先填充它。我不知道该怎么做。如果我用php变量设置该值,我会在日志中得到一个错误,表明它没有定义。感谢您的帮助。多谢各位

表格如下:

<?php 
include_once('Crud_class.php');
$obj = new Crud("loocalhost","root","password","mydb");
$id = $_GET['id'];
if (isset($_GET['id']) && $_GET['id'] > 0) {
  echo "Update for record id#:" . $_GET['id'];
} else {
  echo "Insert new book";
}
 ?>

 <html>
 <head>
 <title>Add New Product</title>
 </head>

 <body>
 <form method="post" action="actions.php">
 <ul class="form">

   <li><label for"title">Title:</label>
      <input type="text" name="title" value="<?php echo $title?>" /></li>

    <li><label for="author">Author:</label>
    <input type="text" name="author"/></li>

     <li><label for="category">Category:</label>
     <select name="category">
       <option value="General">General</option>
       <option value="HTML/CSS">HTML/CSS</option>
       <option value="Javascript">Javascript</option>
       <option value="PHP">PHP</option>
       <option value="Other">Other</option>
      </select></li>

   <li><label for"description">Description:</label>
   <textarea name="description"></textarea></li>

   <li><label for="img_path">Image Path:</label>
    <input type="text" name="img_path"/></li>

      <input type="hidden" name="id" value="<?php if ($id > 0) { echo $id;} else {echo 0;} ?>"/>
     <li><input class="submit" type="submit" name="submit" value="Submit"/></li>
 </ul>
 </form>

  </body>
  </html>

添加新产品
  • 标题:
    表单的预填充取决于在HTML中嵌入预填充内容,并带有属性,例如文本框的
    值=
    属性,或者在
    中的
    选项上设置
    selected=“selected”
    ,或者让客户端javascript基于通过AJAX检索的数据执行预填充,或者再次,嵌入在HTML中

    php表单中的
    Title
    字段就是我所说的一个例子——您得到了以下信息:

    value="<?php echo $title?>"
    
    value=“”
    
    这就是所有其他字段所需的内容(以及
    字段所需的
    selected=“selected”


    另外,请参见表单的预填充取决于在HTML中嵌入带有属性的预填充内容,例如文本框的
    值=
    属性,或者在
    中的
    选项上设置
    selected=“selected”
    ,或者让客户端javascript基于通过AJAX或,同样,嵌入在HTML中

    php表单中的
    Title
    字段就是我所说的一个例子——您得到了以下信息:

    value="<?php echo $title?>"
    
    value=“”
    
    这就是所有其他字段所需的内容(以及
    字段所需的
    selected=“selected”


    另外,请参见

    您需要从表单页面上正在编辑的记录中获取数据

    if (isset($_GET['id']) && $_GET['id'] > 0) {
      echo "Update for record id#:" . $_GET['id'];
      // GET row from database, something like $obj->read($_GET['id']);
    }
    
    为此,您需要向CRUD类添加一些读取函数,该类选择一行,其中id=某个输入整数

    如果您有数据,请将其提取到对象或数组中,并在表单中使用这些值:

    <input type="text" value="<?php if (isset($data)) echo $data['author']; ?>">
    

    您需要从表单页面上有人正在编辑的记录中获取数据

    if (isset($_GET['id']) && $_GET['id'] > 0) {
      echo "Update for record id#:" . $_GET['id'];
      // GET row from database, something like $obj->read($_GET['id']);
    }
    
    为此,您需要向CRUD类添加一些读取函数,该类选择一行,其中id=某个输入整数

    如果您有数据,请将其提取到对象或数组中,并在表单中使用这些值:

    <input type="text" value="<?php if (isset($data)) echo $data['author']; ?>">
    

    您已经设置了ID和条件。现在,您需要初始化所需的变量:

    if (isset($_GET['id']) && $_GET['id'] > 0) {
      echo "Update for record id#:" . $_GET['id'];
      $formValues = readRecordByID($_GET['id']);  // you will need to create this crud select function
    } else {
      echo "Insert new book";
      //initialize blank values:
      $formValues = array(
            'author'=>'',
            'category'=>'',
            'description'=>'',
            'img_path'=>'');
    }
    
    现在,在您的表单中,可以安全地使用:

    <input type="text" name="author" value="$formValues['author']"/>
    

    您已经设置了ID和条件。现在,您需要初始化所需的变量:

    if (isset($_GET['id']) && $_GET['id'] > 0) {
      echo "Update for record id#:" . $_GET['id'];
      $formValues = readRecordByID($_GET['id']);  // you will need to create this crud select function
    } else {
      echo "Insert new book";
      //initialize blank values:
      $formValues = array(
            'author'=>'',
            'category'=>'',
            'description'=>'',
            'img_path'=>'');
    }
    
    现在,在您的表单中,可以安全地使用:

    <input type="text" name="author" value="$formValues['author']"/>
    
    
    
    将php更改为

    <?php 
    include_once('Crud_class.php');
    $obj = new Crud("loocalhost","root","password","mydb");
    $id = $_GET['id'];
    
    if (isset($_GET['id']) && $_GET['id'] > 0) {
    echo "Update for record id#:" . $_GET['id'];
    }
    
    if(isset($_REQUEST['id'])){ // this is added
    $id=$_REQUEST['id'];
    $result=$obj->mysqli->query("SELECT * FROM books WHERE id='$id'");
    
    $rows=$result->fetch_assoc();
    
    extract($rows);
    } else {
      echo "Insert new book";
    }
    ?>
    
    将php更改为

    <?php 
    include_once('Crud_class.php');
    $obj = new Crud("loocalhost","root","password","mydb");
    $id = $_GET['id'];
    
    if (isset($_GET['id']) && $_GET['id'] > 0) {
    echo "Update for record id#:" . $_GET['id'];
    }
    
    if(isset($_REQUEST['id'])){ // this is added
    $id=$_REQUEST['id'];
    $result=$obj->mysqli->query("SELECT * FROM books WHERE id='$id'");
    
    $rows=$result->fetch_assoc();
    
    extract($rows);
    } else {
      echo "Insert new book";
    }
    ?>
    


    什么是未定义的?请从您的日志中包含完整的错误。[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:听起来您的表单尚未发布,因此$u POST['title']不存在。看什么是没有定义的?请从您的日志中包含完整的错误。[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:听起来您的表单尚未发布,因此$u POST['title']不存在。看右边,但是这样做会给我一个错误,说明变量没有定义。我以前见过使用两个表单的情况,一个用于插入,一个用于更新,但在使用一个表单时似乎无法使其正常工作。我还尝试了value=“”,但没有成功:/正如对您的问题的评论,完整的错误消息是什么?未定义什么变量?未定义标题变量。下面是完整的错误消息[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:127.0.0.1/Projects/BTS_Bookshelf/read.PHP?错误消息不是这么说的。错误消息显示未定义索引。感谢您指出,我对php完全不熟悉,只是试图完全理解这一点,但这样做会给我一个错误,说明变量未定义。我以前见过使用两个表单的情况,一个用于插入,一个用于更新,但在使用一个表单时似乎无法使其正常工作。我还尝试了value=“”,但没有成功:/正如对您的问题的评论,完整的错误消息是什么?未定义什么变量?未定义标题变量。下面是完整的错误消息[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:127.0.0.1/Projects/BTS_Bookshelf/read.PHP?错误消息不是这么说的。错误消息显示未定义索引。感谢您指出,我对php完全不熟悉,只是想弄清楚这一点,选择框有问题,但其余的工作正常。选择框仍有问题,但其余的工作正常