【问题标题】:when I click submit it should change the text and update the row something is wrong there当我单击提交时,它应该更改文本并更新行,那里有问题
【发布时间】:2012-09-24 09:25:03
【问题描述】:

早安程序员, 我有这个小代码,其中包含一个新闻控制面板,我在那里制作了一个提交按钮来激活或不激活新闻行,所以如果我点击这个按钮,它应该改变,如果它是活动的,它将是非活动的,它工作但那里有问题我单击第一个项目,它会更新桌子上的最后一个,而不是应该做的第一个。 这是我使用的代码

<?php
$getNewsData="select * from news";
    $QgetNewsData=$db->query($getNewsData)or die($db->error);
    $count=mysqli_num_rows($QgetNewsData);
while($newsRow = mysqli_fetch_array($QgetNewsData)) {
$getActivityStatus=$newsRow['news_activity']; 
    switch($getActivityStatus){
    case 1: echo"<input style='color:red; font-weight:bold; background:none; border:0;' name='inactive' type='submit' value='تعطيل' /><input name='inActive' type='hidden' value='".$newsRow['news_id']."'/>"; 
    break; 
    case 0: echo"<input style='color:green; font-weight:bold; background:none; border:0;' name='active' type='submit' value='تفعيل' /><input name='Active' type='hidden' value='".$newsRow['news_id']."'/>"; break;}
    }
if(isset($_POST['inactive'])){
            $inActive=$_POST['inActive'];
            echo $inActive;
        $updateStatus="UPDATE news SET news_activity=0 WHERE news_id='".$inActive."' ";
        $QupdateStatus=$db->query($updateStatus)or die($db->error);
        if($QupdateStatus){ 
            }
        }

        if(isset($_POST['active'])){
            $Active=$_POST['Active'];
            echo $Active;
        $updateStatus="UPDATE news SET news_activity=1 WHERE news_id='".$Active."' ";
        $QupdateStatus=$db->query($updateStatus)or die($db->error);
        if($QupdateStatus){
        header("Location:CpanelHome.php?id=7"); 
            }
        }
    ?>

请任何想法来解决这个问题。 谢谢, 问候

【问题讨论】:

    标签: php forms mysqli


    【解决方案1】:

    您创建了很多 &lt;input name='inActive'&lt;input name='Active' 字段。请注意,当点击任何提交按钮时,所有都会提交。我能想到的最简单的解决方案是将每对提交按钮和隐藏输入放入单独的&lt;form&gt;

    注意事项

    你的代码很糟糕,你应该考虑做一些改进。对于初学者:

    • 请正确格式化您的代码或找到一个可以为您完成此工作的编辑器。
    • 请在查询中使用 POST 数据之前对其进行验证。
    • 请不要从字符串中粘贴查询,而是使用prepared statements

    【讨论】:

    • '$_POST['inactive']' 指的是提交按钮,'$_POST['inActive']' 指的是隐藏的输入。和 active 一样,但它仍然不能正常工作。
    • 感谢将
      分开的想法非常好,感谢您的注释一定会考虑的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 2021-10-06
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多