使用Javascript AJAX进行POST



我目前正在编写一些民意调查软件,尽管它运行良好,但我在让我的一些javascript工作时遇到了困难。我有一个名为"添加新选项"的按钮,单击它时,将调用以下javascript函数:

function newoption()
{
var option = "";
while((option.length < 1)||(option.length > 150))
{
var option = prompt("Please enter the option value... ").trim();
}
var add = confirm("You entered " + option + ", are you sure?");
if(add==1)
{
var code = window.location.href.length;
var poll = prompt("Which poll are you adding this to?", window.location.href.substring(code - 5, code));
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) 
{this.responsetext = option;}};
xhttp.open("POST", "../special/new.php", true);
xhttp.send("poll=" + poll + "&opt=" + option);
}
else
{
alert("OK... try again");
}
}

它发布到的页面只是有一个功能,可以将选项添加到用户提供代码的轮询中(它会自动从URL的末尾获取(,但问题是,当我刷新页面时,选项列表不会更新,这让我觉得它没有添加到数据库中,但添加新选项的功能在创建轮询时起作用。我做错什么了吗?

new.php的代码是:

<?php require("internal/index.php");
$option = string_format($conection, $_POST["opt"], 1)
$poll =(int) $_POST["poll"];
if($poll&&$option)
{
new_poll_option($connection, $poll, $option);
}
?>

根据您所写的内容,我理解代码在刷新页面之前一直有效。这意味着您不检查Ajax响应,只插入一些HTML,这些HTML将一直持续到刷新页面。

如果项目是创建的,则需要在数据库中查找。如果它是创建的,那么你可能需要删除浏览器缓存(你可以从Chrome中DevTools的"网络"选项卡中删除(。如果项目没有插入数据库中,则需要调试或仅echo您使用的insert函数中的消息。

如果稍后刷新页面,您也可以使用form,而不使用Ajax

最新更新