【问题标题】:Cannot get IF $_GET[video] = edit, display a form无法获取 IF $_GET[video] = 编辑,显示表单
【发布时间】:2012-10-30 13:22:01
【问题描述】:

我似乎无法弄清楚这一点。我正在尝试从结果中获取 row[video] 值,如果数据库中有一个视频条目并且它不为空,则显示一个链接,显示 Edit Video Link with a href= of edit_media.php?video=edit (这是这个页面)。如果用户单击此链接,页面将重新加载包含 video=edit 的 URL,并触发变量 videoEdit 为 TRUE,这应显示一个表单输入框,该框显示数据库中的当前值。

但是,它似乎不起作用,由于某种原因,我什至在单击“编辑视频”链接之前就看到了表单输入框(网址没有视频=编辑)。当我单击“修改视频链接”并且网址确实包含视频 = 编辑时,我会看到一个带有“视频”字样的文本框。我不确定为什么。我在这段代码之前有正确的 MYSQL 查询,但我没有在这里包含它。我怎样才能让它工作?

     // if the user clicked edit video link
if ($_GET['video'] = EDIT) {
$videoEdit = TRUE
}

while ($row = mysql_fetch_array($result, mysql_assoc)) {
$video = $row['video'];
}

if ($videoEdit = TRUE) {
echo '<form action="edit_media.php" method="post">
<p>Video Link: <input type="text" name="serial" size="25" maxlength="100" value=';
       if (isset($video))
            echo $video;
            ' /></p><p><input type="submit" name="submit" value="Submit Video" /></p>               <input type="hidden" name="submitted" value="TRUE" />
        </form>';
}

它接着说:

if ($video != "") {
echo '<iframe width="420" height="315" src=' . $video . ' frameborder="0" allowfullscreen></iframe> | <a href=edit_media.php?video=EDIT>Modify Video Link</a>';
} else {
echo "Video Not Present | <a href=edit_media.php?video=EDIT>Add a Video</a>";
}

你能帮我完成这个脚本吗?

【问题讨论】:

    标签: php mysql variables if-statement get


    【解决方案1】:

    首先你需要一个比较,而不是分配:

    if ($_GET['video'] ==  'EDIT') {
         $videoEdit = TRUE;
     }
    

    if ($videoEdit == TRUE) {
    

    您的视频的打印也需要清理:

    echo '<form action="edit_media.php" method="post">
          <p>Video Link: <input type="text" name="serial" size="25" maxlength="100" value=';
    if (isset($video)){
            echo $video;
    }
    echo ' /></p><p><input type="submit" name="submit" value="Submit Video"/></p>'.
         '<input type="hidden" name="submitted" value="TRUE" /> </form>';
    

    【讨论】:

    • 这可行,但是当页面进入 video=edit 模式时。表单文本框显示字符 / 而不是数据库字段中的实际链接。
    • OK - 当我运行 echo $video;直接在 if ($videoEdit) { 语句之前,它在页面上输出数据库中视频的 URL。但是,如果我在 if ($videoEdit) { 下包含同一行,我会得到 nadda。没有。零。蹲下。
    【解决方案2】:

    在你的两个 if 语句中,你错过了一个“=”,你的代码是正确的:

    if ($_GET['video'] == EDIT) {
    $videoEdit = TRUE
    }
    
    while ($row = mysql_fetch_array($result, mysql_assoc)) {
    $video = $row['video'];
    }
    
    if ($videoEdit == TRUE) {
    echo '<form action="edit_media.php" method="post">
    <p>Video Link: <input type="text" name="serial" size="25" maxlength="100" value=';
           if (isset($video))
                echo $video;
                ' /></p><p><input type="submit" name="submit" value="Submit Video" /></p>               <input type="hidden" name="submitted" value="TRUE" />
            </form>';
    }
    

    【讨论】:

      【解决方案3】:

      此行使用了错误的比较运算符:

      if ($videoEdit = TRUE) {

      应该是

      if ($videoEdit == TRUE) {

      【讨论】:

        【解决方案4】:

        这里有很多语法错误..我建议做一些学习...这是我能看到的..

        另外,在您研究时...查看 PDO 或 Doctrine,不推荐使用 mysql。

        if ($_GET['video'] == 'EDIT') { // <<--- invalid syntax
        $videoEdit = TRUE; // <--- missing semicolon
        }
        
        while ($row = mysql_fetch_array($result)) { // <-- not sure
        $video = $row['video'];
        }
        
        if ($videoEdit) { // <-- boolean comparison
        echo '<form action="edit_media.php" method="post">
        <p>Video Link: <input type="text" name="serial" size="25" maxlength="100" value=';
               if (isset($video))
                    echo $video;
                    ' /></p><p><input type="submit" name="submit" value="Submit Video" /></p>               <input type="hidden" name="submitted" value="TRUE" />
                </form>';
        }
        

        这里有一个很棒的资源:@​​987654321@

        【讨论】:

          【解决方案5】:

          试试这个 if ($_GET['video'] == "编辑") { $videoEdit = TRUE }

          【讨论】:

            【解决方案6】:

            这是将 EDIT 分配给变量,而不是检查其值。

            if ($_GET['video'] = EDIT)
            

            尝试养成以相反顺序编写常量检查的习惯:

            if (EDIT == $_GET['video'])
            

            这样,如果您再次删除“=”,代码将根本无法编译,并且您会立即收到警告。

            出于同样的原因,请注意if ($a == $b) 的比较。

            【讨论】:

            • 它现在可以工作,但是数据库中视频链接的 URL 不会在 if ($videoEdit) { 条件下输出,如果我在该条件之前回显 $video 它会显示链接,但是如果我在那个条件内回显 $video,我什么也没得到。你知道为什么>?
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-04-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-03-12
            • 2021-06-20
            相关资源
            最近更新 更多