如何为每个图像预览添加标题字段,并通过一个提交按钮发布所有标题

时间:2017-09-03 16:50:36

标签: php

这是我的代码我想为每个图像预览添加一个输入字段并将其保存到数据库..字段即将到来但我没有得到任何数据..任何人都可以建议我如何发布它们?

$fetch_imgid=$con->prepare("SELECT * FROM attempt010 where link='$rand'");
$fetch_imgid->setFetchMode(PDO:: FETCH_ASSOC);
$fetch_imgid->execute();
?>
<ul class="reorder_ul reorder-photos-list" id="previewImg">
    <?php
    while($row = $fetch_imgid->fetch()):
        $delid = $row['id'];
        //echo $row['id'].' '.$row['name'].'<br/>';?>
        <li id="image_li_<?php echo $row['id']; ?>" class="ui-sortable-handle" data-image-id="<?php echo $delid; ?>">
        <a href="javascript:void(0);" style="float:none;" class="image_link"><img src="uploads/<?php echo $row['name']; ?>" alt=""></a>
        <input type="submit" class="del_btn" value="Delete Image" />
        <input type="text" id="cap" name="cap[]" placeholder="Enter Caption Here" />
        <input type="hidden" id="cap_id" value="<?php echo $row['id']; ?>" />
    <?php

    endWhile;
    ?>

</ul>
<input type="submit" value="Add Caption" name="addcap" /> <?php include('addcap.php'); ?>

这是addcap.php

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
if(isset($_POST['addcap'])){
    foreach($_POST['cap'])
    {
            $imgcap = $_POST['cap'];
            if($imgcap!=empty())
            {
                try
                {
                    $con=new PDO("mysql:host=localhost;dbname=newimg","root","");
                    $sql=$con->prepare("UPDATE attempt010 SET caption='$imgcap' WHERE id='$cap_id'");
                    $sql->execute();
                }
                catch(PDOException $e)
                {
                    echo $sql . "<br>" . $e->getMessage();
                }
            }
    }
}
?>

1 个答案:

答案 0 :(得分:2)

$fetch_imgid=$con->prepare("SELECT * FROM attempt010 where link='$rand'");
$fetch_imgid->setFetchMode(PDO:: FETCH_ASSOC);
$fetch_imgid->execute();
?>
<form action="addcap.php" method="post">
<ul class="reorder_ul reorder-photos-list" id="previewImg">
    <?php
    $id_array="";
    while($row = $fetch_imgid->fetch()):
        $id_array = $id_array.$row['id'].",";
    $delid = $row['id'];
    //echo $row['id'].' '.$row['name'].'<br/>';?>
    <li id="image_li_<?php echo $row['id']; ?>" class="ui-sortable-handle" data-image-id="<?php echo $delid; ?>">
    <a href="javascript:void(0);" style="float:none;" class="image_link"><img src="uploads/<?php echo $row['name']; ?>" alt=""></a>
    <input type="text" id="cap_<?php echo $row['id']; ?>" placeholder="Enter Caption Here" />
<?php

endWhile;
$id_array = substr($id_array, 0, -1);
?>
<input type="hidden" id="cap_ids" value="<?php echo $id_array ; ?>" />

</ul>
<input type="submit" value="Add Caption" name="addcap" /> 
</form>


<!--addcap.php-->

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
if(isset($_POST['addcap'])){
    if(isset($_POST['cap_ids'])){
        $ids_array = explode(",", $_POST['cap_ids']);
        foreach($ids_array as $ids)
        {
                $idcap = 'cap_'.$ids;
                $imgcap = $_POST[$idcap];
                if($imgcap!=empty())
                {
                    try
                    {
                        $con=new 
PDO("mysql:host=localhost;dbname=newimg","root","");
                        $query = "UPDATE attempt010 SET 
caption='$imgcap' WHERE id='$ids'";
                        echo $query;
                        $sql=$con->prepare($query);
                        $sql->execute();
                    }
                    catch(PDOException $e)
                    {
                        echo $sql . "<br>" . $e->getMessage();
                    }
                }
        }
    }
}
?>

必须具有唯一ID。您无法发送具有相同ID的多个字段。你只会得到最后一个。

例如:

<form action="addcap.php">
    <inputs here>
</form>

此代码看起来无法正常工作。因为您在同一页面中提交和表单处理代码。表单背后的想法是将数据发布到不同的页面(在表单操作中设置),此页面将对此数据执行某些操作并将结果显示给用户。为您的示例在第一个文件中创建表单,如:

g <- ggplot(m.df, 
       aes(x = ZMemScore,
           y = exp(m.df$fit),
           color = factor(Type))) +
  geom_ribbon(aes(ymin=exp(m.df$lower), ymax=exp(m.df$upper), color = NA, fill = factor(Type)), linetype = 1, alpha=0.3) + 
  geom_line(aes(linetype = Type), size = 1.2) +
  xlab("ZMemScore") + ylab("Predicted RT (ms)") + labs(color = "Type", subtitle ="ZQVT") +
  facet_grid(. ~ ZQVT) +
  scale_linetype_discrete(name='Type', labels=c('Nonword','Real Word')) +
  theme_classic() + scale_color_manual(values=c("black", "firebrick2")) + theme(plot.subtitle = element_text(hjust = 0.5)) +
  theme(text = element_text(size=14))+
  guides(fill = FALSE, color = FALSE)
plot(g)

现在,当用户可以继续使用页面/应用程序时,数据库操作在服务器端进行asynchronic是很常见的。 所以学习如何使用jQuery和AJAX。也许是nodeJS或其他新东西。