【问题标题】:Ckeditor data not retrieved for some form (php)未检索到某种形式的 Ckeditor 数据(php)
【发布时间】:2014-09-10 10:13:17
【问题描述】:

几天前我在这里发了一个帖子:

Ckeditor content retrieval using PHP

(顺便说一句,我希望这没关系,在新线程中提出相关问题,但留在同一个线程上似乎很尴尬)。

它现在工作正常。但是,当其他形式的ckeditor替换textareas时,虽然代码非常相似,但并没有检索到数据。

我想我可能会受限于我对这个问题的 php 表单的理解。无论如何,这是代码:

<section id="mainsection">
    <script src="http://localhost/Project/ckeditor/ckeditor.js"></script>               
    <h1> ADD INDIVIDUAL </h1>                   

    <form enctype="multipart/form-data" action=<?php echo $_SERVER['PHP_SELF']?> method="post">
        <p>
            <label for="fullname">Full Name</label> : <input type="text" name="fullname" id="fullname" /><br />
            <label for="description">Biography</label> :  <input type="textarea" name="description" id="description" /><br />   
            <label for="file">Find image</label> :  <input name="personimage" type="file" id="personimage" /><br />
            <input type="submit" value="Envoyer" />
       </p>
       <script>
            CKEDITOR.replace( 'description' );
       </script>
       <script type="text/javascript" src="http://localhost/Project/js/update.js"></script>
    </form> 

<?php
    var_dump($_POST);

       /* if(isset($_POST['fullname']) AND isset($_POST['description']))
        {
            $post = array('fullname' => $_POST["fullname"],
            'description' => $_POST["description"],
            );  
            add_person($post);      
        }else{  
            echo 'Not every parameter has been set';
        }*/
?>

代码在没有 ckeditor 的情况下可以正常工作。但是目前的代码并没有将 ckeditor 内容添加到 $_POST,这让我感到困惑,因为它似乎与我发布的链接中的代码没有根本的不同。

【问题讨论】:

    标签: php html forms post ckeditor


    【解决方案1】:

    有一些验证错误需要修复


    所以首先,action 的值&lt;?php echo $_SERVER['PHP_SELF']?&gt; 应该用引号括起来(""),但不需要用$_SERVER['PHP_SELF'] 填充这个属性。你可以让这个属性为空。

    之后,您应该使用比&lt;input type="textarea" /&gt; 更有效的&lt;textarea&gt;&lt;/textarea&gt; 格式,正如您在W3 Input reference 中看到的那样,没有input type=textarea 选项。所以应该是

    <textarea name="description" id="description"></textarea>
    

    代替

    <input type="textarea" name="description" id="description" />
    

    最终的结果应该是这样的:

    <form enctype="multipart/form-data" action="" method="post">
        <p>
            <label for="fullname">Full Name</label> : <input type="text" name="fullname" id="fullname" /><br />
            <label for="description">Biography</label> :  <textarea name="description" id="description"></textarea><br />   
            <label for="file">Find image</label> :  <input name="personimage" type="file" id="personimage" /><br />
            <input type="submit" value="Envoyer" />
       </p>
       <script>
            CKEDITOR.replace( 'description' );
       </script>
       <script type="text/javascript" src="http://localhost/Project/js/update.js"></script>
    </form>
    

    完成这些更改后,请再次尝试var_dump($_POST);

    【讨论】:

    • 神圣的通心粉这解决了我的问题。我很惊讶我和我的调试器都没有选择那个。对此感到抱歉
    • 嗨@spliblib 如果这个或任何答案已经解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    猜你喜欢
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多