Javascript 使用HTML标记和innerHTML、setAttribute()等传递数据。编辑和更新存储在数据库中的新闻文章

Javascript 使用HTML标记和innerHTML、setAttribute()等传递数据。编辑和更新存储在数据库中的新闻文章,javascript,input,parameters,tags,innerhtml,Javascript,Input,Parameters,Tags,Innerhtml,我有一个简单的新闻更新界面,从数据库中读取新闻标题/标题,并将其作为列表打印在页面上。其目的是,当我点击其中一个标题时,它会显示一个带有表单的区域,在该区域中,可以修改新闻文章,然后将其更新回数据库 现在为了做到这一点,我需要以某种方式将信息(id或标题本身)传递到表单上,这样我就可以从数据库中读取适当的文章和其他信息。这似乎是一项非常简单的任务,但我注意到这似乎是一项不可能完成的任务。当然,我可以将整个表单放在javascript函数中,然后使用this.innerHTML将标题作为参数传递给

我有一个简单的新闻更新界面,从数据库中读取新闻标题/标题,并将其作为列表打印在页面上。其目的是,当我点击其中一个标题时,它会显示一个带有表单的区域,在该区域中,可以修改新闻文章,然后将其更新回数据库

现在为了做到这一点,我需要以某种方式将信息(id或标题本身)传递到表单上,这样我就可以从数据库中读取适当的文章和其他信息。这似乎是一项非常简单的任务,但我注意到这似乎是一项不可能完成的任务。当然,我可以将整个表单放在javascript函数中,然后使用this.innerHTML将标题作为参数传递给函数,然后从变量中读取它,但是我必须使用javascript或php生成所有html,但我认为必须有一种更简单的方法来实现这一点

我尝试使用隐藏的输入标记和其他元素,如span和div元素,然后使用onclick=“document.getElementByID(“elementsname”).value=this.innerHTML;”和onclick=“document.getElementsByName(“elementname”)[0].setAttribute(“value/name”,this.innerHTML);”将标题作为输入元素值传递给它们。像这样的事情会很简单,但由于我不知道的原因,这些方法不起作用。要么信息没有到达那里,要么javascript无法从元素中进一步读取

例如,当我将输入元素设置为type=“text”时,我可以使用输入元素传递信息,它在页面上显示为文本字段,但由于某种原因,它无法从那里读取,甚至在从浏览器检查源代码时,它也不会出现在代码上。为什么会这样?由于这个原因,我无法将信息传递到我的SQL查询,所以我可以从数据库中将相应的新闻文章读入文本区域


那么,有没有办法让这个想法发挥作用,或者我应该忘记它而使用其他方法呢?当web开发人员希望从数据库中打开某些内容进行编辑/更新时,他们通常是如何做到这一点的?

这种方法通常是使用ajax和单独的表单模板视图来实现的,表单在服务器端动态填充

你将拥有一页新闻文章。单击其中一个时,它将向您的服务器发出一个ajax请求,其中包含文章的标识符。服务器将组成一个包含所见即所得编辑器的页面,该编辑器在一组输入元素中预先填充文章中的信息,并执行保存或取消操作

服务器对此模板页面的响应将出现在您的新闻文章页面的成功回调中,然后将弹出包含服务器端生成视图的模式类型元素


完成更改后,如果保存了视图,将调用页面上相关新闻文章的更新,并将更改发布到服务器。

感谢您提供的信息。我不知道ajax用于这种类型的工作,因为我总是将ajax与网页上信息的实时更新联系在一起,比如体育直播分数更新等等。然而,我希望在不使用ajax的情况下完成这项工作,并自己编写代码,因为我需要学习如何自己完成所有工作。此外,这是一个非常小的规模,所以我认为使用ajax对我的项目来说是不必要的。我还希望能够轻松、完全地控制表单、UI和所有内容的外观。我还没有正确地学习ajax,这还需要等待一段时间。@Mr.Asker-ajax并不像听起来那么可怕:)它指的是使用javascript来模拟用户导航到您的某个页面。除了他们不必去那里,他们所要做的就是在那里使用ajax。这是通过一个“xhr”请求完成的。如果您只是在学习javascript或客户端web技术,Mozilla开发者网络拥有丰富的知识。以示例说明如何发出ajax请求。这份文件很大,但它应该为你涵盖很多基础知识。是的,我知道。我已经很快地了解了ajax的基础知识,但是还没有正确地学习和使用它,我将在稍后再做。但是,此时我想在没有它的情况下执行此操作。:)我只需要知道如何在单击标题时将id或标题本身传递给我的表单,这样我就可以通过SQL查询从数据库中获取相应的文章。我进一步跟踪了为什么属性操作不起作用,对我来说毫无意义。这是用于生成标题链接的php代码,然后单击标题链接:echo$row[“Postdate”]。“
”;现在,如果将setAttribute操作放在那里,或者放在函数中的其他地方,然后将函数调用放在这里,它将不起作用,但是每当我将同一段代码放在其他地方(不是这里,或者放在javascript函数中)时,它就可以正常工作。这怎么可能?这对我来说毫无意义,似乎完全不合逻辑。这些是我在HTMLDOM和元素属性中不理解的不合逻辑的行为,有时会使编码变得不必要的困难。