【问题标题】:Not able to append the value at specific place with Javascript无法使用 Javascript 在特定位置附加值
【发布时间】:2019-06-12 12:29:27
【问题描述】:

我有一些 JavaScript 代码,用于从用户那里获取 HTML 标记或文本数据并提交给服务器。

现在我放了一个对话框,它将收集用户点击按钮时的代码描述,并将数据作为描述发送到服务器。

所以我需要在结构化编码中将所有东西放在一起。

如果用户将一些 HTML 代码放入 textarea 并尝试保存它,程序会询问描述,一旦用户输入,描述应该在 body 标签关闭之前保存。

我尝试添加带有 textarea 值的字符串,但它在代码的最后添加了字符串,我的意思是在关闭 HTMl 标记之后。我在关闭body标签之前需要它。

HTML代码是

<textarea id="textareaCode"></textarea>
<a href="javascript:void()" onclick="makePage()">Save this code</a>

Javascript 代码

<script>

    function makePage(){
    var titlename = document.getElementById("title").value;
    var description = document.getElementById("description").value;

    var comment = document.getElementById('textareaCode').value  += '<p>' + description + '</p>';
    alert (comment);
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function(){
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
        alert("webpage " + xmlhttp.responseText + " was successfully created!");
    }
    var content = JSON.stringify({ comment: comment, titlename: titlename, description: description});
    xmlhttp.open("POST","makePage.php",true);
    xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlhttp.send(content);
    }

</script>

最后是 PHP 代码

<?php
$data = json_decode(file_get_contents('php://input'), true);
$content = $data['comment'];
$description = $data['descriptionname'];
$finalcontent = $content . $description;
$title = $data['titlename'];
$file = trim($title).".html";
file_put_contents("userdata/$file", $finalcontent);
echo $file;
?>

我需要一个能在 body 标签关闭之前准确地放置这个变量描述的人。

请在此处查看:https://html5andcss3.org/tryit_2.php

您可以在左侧编写一些代码并点击运行。这会给你一些输出,然后尝试从保存图标中保存它,它会询问你的标题和描述。

【问题讨论】:

    标签: javascript jquery html ajax


    【解决方案1】:

    您可能想尝试以下 javascript,我没有看到任何 jQuery 代码,所以我认为您只想在调用函数后附加文本:

    function makePage(){
    var titlename = "title";
    var description = "description";
    
    var paragraph = document.createElement("p");
    paragraph.innerHTML = description;
    document.getElementsByTagName("body")[0].append(paragraph);
    var comment = paragraph.outerHTML;
    alert (comment);
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function(){
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
        alert("webpage " + xmlhttp.responseText + " was successfully created!");
    }
    var content = JSON.stringify({ comment: comment, titlename: titlename, description: description});
    xmlhttp.open("POST","makePage.php",true);
    xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlhttp.send(content);
    }`
    

    【讨论】:

    • document.getElementsByTagName("body")[0].append(paragraph);我认为这条线将称为body标签的第一个存在。我将附加在主页上。我需要这个在textarea里面。请查看给定的工作代码链接,我已更新。可以看到问题
    • 描述在您的代码中以[[结束为文本,所以您想将标签本身附加到文本区域内?如果是这样,我认为这是不可能的。
    • 我的代码可以工作,它可以添加带有 textarea 值的值,但它最后添加了代码。我需要它是否能以某种方式找到元素名称然后输入代码
    • @user3030404 你可以用&lt;div contenteditable="true"&gt;&lt;/div&gt;替换文本区域,看看这个fiddle
    • 所以要放在文本区标签下?您总是可以使用 DOM 方法来定位和附加 HTML 元素
    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多