PHP-HTML 使用 input=text 更新 mysql,其中 POST ['submit' ]

标签 php html mysql validation post

我想通过 express 服务调用电话。 我在 HTML 表单中 foreach,MySQL 表的调用状态为“1”,因此我可以看到女巫调用仍然需要调度。

当我将“MessagerID”放入输入文本并按下“Dispatch”按钮时,我希望该“CourseID”使用“MessengerID”进行更新,并且“Status”变为“0”。

这里有一些代码。(尚未清理...)

    $query = "SELECT * FROM courses WHERE Status = :Status ORDER BY CourseRecu, Service";
    $query_params = array(
        ':Status' => 1);        
try
{
    $stmt = $db->prepare($query);
    $result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
    die("Échec de la Requête: " . $ex->getMessage());
}
$Courses = $stmt->fetchAll();

HTML 表单:

    <?php foreach($Courses as $Course)
    {
    echo '<tr>';
    echo '<td><input type="text" name="'. $Course['ID'] . '" value="' . $Course['ID'] . '"</td>';
    echo '<td><input type="text" name="CourseRecu" value="' . $Course['CourseRecu'] . '"/></td>';
    echo '<td><textarea rows="3" cols="50" name="Depart">' . $Course['DepNom'] . '&#13;&#10;' . $Course['DepAdresse'] . '</textarea></td>';
    echo '<td>----></td>';
    echo '<td><textarea rows="3" cols="50" name="Destination">' . $Course['DestNom'] . '&#13;&#10;' . $Course['DestAdresse'] .  '</textarea></td>';
    echo '<td>
            <input type="text" name="MessagerID' . $Course['ID'] .'" value="' . $Course['MessagerID'] . '" /></td>';

    echo '<td><input type="submit" name="submit' . $Course['ID'] . '" value="Dispatch" /></td>';

    echo '</tr>';
    }

我知道这是错误的,但我卡在那里......

    if(!empty($_POST['submit' . $Course['ID']]))
{
    $query = "UPDATE courses SET 
            MessagerID = :MessagerID,
            Status = :Status
            WHERE ID = :ID" ;   
    $query_params = array(
    ':MessagerID' => $_POST['MessagerID' . $Course['ID']],
    ':Status' => 0,
    ':ID' => $_POST[$Course['ID']]); 

    try 
        { 
            // Execute the query to create the user 
            $stmt = $db->prepare($query); 
            $result = $stmt->execute($query_params); 
        } 
        catch(PDOException $ex) 
        {
            die("La requête à échoué: " . $ex->getMessage()); 
        }
}

我认为我可能一直走在错误的轨道上,并且可能有更好的方法来做到这一点...... 感谢您抽出宝贵的时间! :-)

最佳答案

我将建议一些修改。

1) 在对应于特定类(class)的每组输入字段周围放置一个表单,例如

<?php foreach($Courses as $Course)
{
echo '<tr><form>';
echo '<td>

...

2) 不要根据类(class) ID 命名您的提交,而是将类(class) ID 作为表单中的隐藏字段传递。

 echo '<input type="hidden" name="id" value="'. $Course['ID'].' />";
 echo '<td><input type="submit" name="submit" value="Dispatch" /></td>';

echo '</form></tr>';

这样你可以检查:

if (!empty($_POST['submit']) && !empty($_POST['id'])
   $CourseID = $_POST['id'];
   //Do what you need to do to get the course here.

...

编辑:重命名提交的相同想法也适用于其他输入字段。

关于PHP-HTML 使用 input=text 更新 mysql,其中 POST ['submit' ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35701160/

相关文章:

php - 如何使用php解析ipa来收集信息

javascript - 使用 Javascript 将行添加到表中

html - 使边框变粗并改变颜色或在 awesome-bootstrap-checkbox 上产生阴影效果?

php - 从 MySQL 表获取数据到 PHP 时,第一条数据不显示

php - 使用 MIN 函数的 Symfony 最低用户出价?

php - 使用 PHP 脚本 : why mysqldump does not dump sql file?

PHP Membership script + PayPal IPN,我需要哪些信息并与之比较?

php - AJAX/MySQL/PHP 问题

javascript - 在不降低内容的情况下显示导航下拉菜单

mysql - SQL DELETE 从同一语句中的两个表