使用Javascript-AJAX发布
我目前正在编写一些民意测验软件,尽管它工作得很好,但我的一些javascript很难正常工作。我有一个标记为“添加新选项”的按钮,单击该按钮将调用以下javascript函数:使用Javascript-AJAX发布,javascript,php,ajax,Javascript,Php,Ajax,我目前正在编写一些民意测验软件,尽管它工作得很好,但我的一些javascript很难正常工作。我有一个标记为“添加新选项”的按钮,单击该按钮将调用以下javascript函数: function newoption() { var option = ""; while((option.length < 1)||(option.length > 150)) { var option = prompt("Please enter the optio
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");
}
}
函数newoption()
{
var选项=”;
而((option.length<1)| |(option.length>150))
{
var option=prompt(“请输入选项值…”)。trim();
}
var add=confirm(“您输入了“+选项+”,确定吗?”);
如果(加法==1)
{
var code=window.location.href.length;
var poll=prompt(“您将此添加到哪个轮询?”,window.location.href.substring(代码-5,代码));
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200)
{this.responsetext=option;}};
xhttp.open(“POST”,“./special/new.php”,true);
xhttp.send(“poll=“+poll+”&opt=“+option”);
}
其他的
{
警报(“确定……重试”);
}
}
它发布到的页面只是有一个功能,可以将选项添加到用户提供代码的轮询中(它会自动从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,直到刷新页面为止 如果项目已创建,则需要查看数据库。如果创建了浏览器缓存,那么您可能需要删除浏览器缓存(您可以从Chrome中DevTools的“网络”选项卡中删除)。 如果项目没有插入到数据库中,那么您需要调试或只是
echo
insert函数中使用的消息
如果要在几分钟内刷新页面,还可以使用表单
,而不使用Ajax