Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 重新获取<;表格>-JavaScript.innerHTML更改后的元素值_Php_Javascript_Html_Post_Innerhtml - Fatal编程技术网

Php 重新获取<;表格>-JavaScript.innerHTML更改后的元素值

Php 重新获取<;表格>-JavaScript.innerHTML更改后的元素值,php,javascript,html,post,innerhtml,Php,Javascript,Html,Post,Innerhtml,我有一个表单,它有几个文本输入字段和一个下拉列表。下拉列表的内容由php脚本生成,以匹配数据库结构。我试图做的是让用户从下拉列表中选择一个选项,然后根据选择从数据库加载一些文本来更新表单视图,然后将其放入用户编辑(即AJAX样式)。我使用php再次生成整个表单,将查询的内容添加到视图中 问题是:现在当用户对输入字段的文本内容进行更改时,他按下“提交更改”按钮。现在,我必须获取文本字段的更改内容以更新数据库中的行。我不知道该怎么做 我试图使用表单的POST方法将更改后的内容传递给php脚本,但它无

我有一个表单,它有几个文本输入字段和一个下拉列表。下拉列表的内容由php脚本生成,以匹配数据库结构。我试图做的是让用户从下拉列表中选择一个选项,然后根据选择从数据库加载一些文本来更新表单视图,然后将其放入用户编辑(即AJAX样式)。我使用php再次生成整个表单,将查询的内容添加到视图中

问题是:现在当用户对输入字段的文本内容进行更改时,他按下“提交更改”按钮。现在,我必须获取文本字段的更改内容以更新数据库中的行。我不知道该怎么做

我试图使用表单的POST方法将更改后的内容传递给php脚本,但它无法获取任何内容,因为AJAX样式并没有真正更改页面的HTML

以下是我如何实现这一目标的简短复制:

页眉:

<head>
<script>
function updateForm(str) {
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
    }
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                document.getElementById("divContainingForm").innerHTML=xmlhttp.responseText;
            }
    }

    xmlhttp.open("POST","/scripts/regenerateTheForm.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("id=" + str);
}
</script>
</head>

函数updateForm(str){
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“divContainingForm”).innerHTML=xmlhttp.responseText;
}
}
open(“POST”,“/scripts/regenetheform.php”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xmlhttp.send(“id=”+str);
}
页面正文:

<form action="/scripts/changeTheOldOne.php" method="post">
    <div id="form">
        <fieldset>
            <label for='list'>Content to edit</label>
            <select id='list' name="list" onchange='updateForm(this.value)' autofocus>
            <?php echo(generateListOptions()); ?> //php-function
            </select>
            </fieldset>
            <fieldset>
                <label for="header">Header</label>
                <input required type="text" id="header" />
            </fieldset>
            <fieldset>
                <label for="body">Plain text</label>
                <textarea required id="body" rows="16" maxlength="1500"></textarea>
            </fieldset>
        </fieldset>
    </div>
</form>

要编辑的内容
//php函数
标题
纯文本
php中的函数返回生成的表单,该表单现在在字段中包含文本,JavaScript将其写入页面并更新用户视图。用户现在可以查看检索到的内容并对其进行编辑,但在提交表单时,changeTheOldOne.php无法从$\u POST数组中获取表单的AJAX更新值和用户编辑值。

问题已解决


那只是一件无聊的事。我忘记了输入字段中的名称标签,这就是为什么PHP POST无法获取任何信息的原因。我以为这个id对于php来说已经足够了,但事实并非如此

我知道您正在尝试做什么,但您需要显示一些代码,以便我们能够提供相关帮助。希望不是你的HTML/JS产品的一个巨大的斑点,而是你如何尝试做它的一些小复制品。