【问题标题】:how to create row dynamic and save to database如何动态创建行并保存到数据库
【发布时间】:2014-05-30 05:16:54
【问题描述】:

您好,我有一个大问题。我需要在我的时间表中添加动态行并将它们保存到我的数据库中。这看起来像我的时间表!http://cjoint.com/data/0DptGlbePgo.htm 而且我每天都需要能够添加项目客户、描述位置(英文位置)和总数。每天都有一个按钮,用于添加行。当我按下按钮完成时(未显示在图片中,因为它仅在条件完成时显示)我想将它们添加到我的数据库中。现在我将展示我如何进行。

这里是我的一天(星期一)的例子

<!-----------------------------------LUNDI----------------------------------------------------->
<tr>
                <td>
                    <b>Lundi</b> </br><?php echo $date2 ?>
                </td>
                <td>
                    </br>
                    <input size="10" type="text" id="projlundi" name="projlundi"onkeypress="return handleEnter2(event, this, 'task');"/>

                </td>
                <td>
                    </br>

                    <input type="text" name="projdesclundi" size="30" class "desc" id ="projdesclundi"readonly />
                </td>
                <td>
                    </br>
                    <textarea rows="1" cols="20" name="taskdesclundi" id="taskdesclundi"/> </textarea>
                </td>
                <td>
                    </br>
                    <input type="text" name="lieu1" size="10">
                </td>
                <td>
                </br>

<!-- dꣵt section cobobox tache avec tool tip -->                    
                    <label title="Selectlundi"> <select title="Selectlundi" id="Selectlundi" name="Selectlundi">
                    <?php

                        $stmt->execute();
                        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                            echo ' <option title="';
                            echo $row['tacName'];
                            echo '">';
                            echo $row['tacId'];
                            echo '</option>'."\n";
                         $task = array();

                            //echo '<option value="'.$row['tacName'].'">'.$row['tacId'].'</option>'."\n";
                        }
                    ?>
                </select>
        </label>
<!-- Fin section cobobox tache avec tool tip -->    
                </td>   
            <!-- calculter le temps pour le lundi -->       

                        <td>
                        </br>
                    <span id="calculTemps1">
                            <input type="number" id="input2" class="temps" name="tempsl"  max="24" min="0" value="0" />

                    </span>
                </td>   

        </tr>

这是我将星期一插入数据库的方法

<?php
 session_start();
// Connect to the DB
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=cruel', 'root', '');
}
catch (Exception $e)
{
    die('Erreur : ' . $e->getMessage());
}

    $timId = "" ;


//lundi

if (isSet($_POST['projdesclundi']))
    {
    $usrUserName =  $_POST['usrUserName'] ;
    $lieu1 = $_POST['lieu1'] ;
    $projdesclundi = $_POST['projdesclundi'] ;
    $timDateStartOfWeek = $_POST['data'] ;
    $Selectlundi =  $_POST['Selectlundi'] ;
    $projlundi =  $_POST['projlundi'] ;
    $date2 =  $_POST['date2'] ;
    $tempsl =  $_POST['tempsl'] ;
    }   



        //---------------------------- INSERTION lundi--------------------------------------

                    // Insertion description,location tache, numero de projet
            $req = $bdd->prepare('INSERT INTO projetstaches 
            (prtDescription,prtLocation,prtTaskId,prtProjetNum,prtDate,prtTime,prtTimeSheetId)
            VALUES(:projdesclundi, :lieu1 ,:Selectlundi, :projlundi, :date2, :tempsl, :timId )');
            $req->execute(array(

                'projdesclundi' => $projdesclundi,
                    'lieu1' => $lieu1,
                    'Selectlundi'=> $Selectlundi,
                    'projlundi'=> $projlundi,
                    'date2'=> $date2,
                    'tempsl'=> $tempsl,
                    'timId'=> $timId,

            ));

所以我的代码问题是我已经展示了如何继续我在 ajax、jquery、javascrip0t 中尝试了很多东西,但都失败了。并创建许多错误。如果我忘记了一些东西来表达我的歉意,我会编辑因为我有超过 15 页,所以你明白我的帖子太长了。

编辑这是我将页面 autocomplete.php 发布到 insert.php 的方式

在我的星期天之前(与星期一代码相同)我有我的

<form action = 'insert.php' method="post"  >

在星期六之后(我的时间表的最后一天)我有这个

<input type="text" id="result" readonly="readonly" name="total" />

<input type="hidden" name="date2" value="<?php echo $date2; ?>" />

<input type="submit"  value="Terminé" id="end" />
<input type="hidden" name="data" value="<?php echo $date; ?>" />
<input type="hidden" name="usrUserName" value="<?php echo $usrUserName; ?>" />

</p>
</form>

【问题讨论】:

  • it isset 不是 isSet(更好),您需要向我们展示您是如何尝试将数据从 html 发送到 php 以便我们能够提供帮助
  • 这并没有改变任何东西,但我只是在我的代码中改变了它。你对我的问题有什么建议吗?
  • 这不是错误,只是更好。我无法提出任何建议,您能说明您是如何尝试将数据提交到 php 的吗?
  • 是的,没有问题,我已经编辑了你想看到我的帖子操作的内容?
  • insert.php $bdd-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 中使用catch 下的这一行,然后提交您的表单,并粘贴您的错误

标签: php html sql database dynamic


【解决方案1】:

您需要在执行之前使用 bind_param!

 $req = $bdd->prepare('INSERT INTO projetstaches 
            (prtDescription,prtLocation,prtTaskId,prtProjetNum,prtDate,prtTime,prtTimeSheetId)
            VALUES(:projdesclundi, :lieu1 ,:Selectlundi, :projlundi, :date2, :tempsl, :timId )');
$req->bind_param('ssssssss',
      $usrUserName,
     $lieu1,
     $projdesclundi,
     $timDateStartOfWeek,
     $Selectlundi,
     $projlundi,
     $date2,
     $tempsl);

     $req->execute();

注意:bindparam 的第一个参数是一个字符串,其中包含接下来的数据类型。您始终可以使用“s”(用于字符串)。在上面的示例中,每个数据字段都有一个“s”。

【讨论】:

  • 他将array 传递给execute(),这与绑定相同。
  • 我知道如何在我的数据库中添加我的输入这就是我所说的这部分工作。我看起来像这样:blog.calendarscripts.info/… Addind row dynamic 之后我可以像保存输入一样保存它们
猜你喜欢
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多