Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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
使用ajax、php和mysql自动保存_Php_Jquery_Mysql_Ajax - Fatal编程技术网

使用ajax、php和mysql自动保存

使用ajax、php和mysql自动保存,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我试图编写一个脚本,混合我在互联网上找到的东西,以便将表单数据自动保存到mysql数据库。。。出现了一些错误,原因是脚本可以插入,但由于某些原因无法更新,因此每20秒我设置的时间会生成一个新行。。。有人能帮我找到并解决这个问题吗? 代码如下: <?php session_start(); unset($_SESSION['article_id']); require_once('xajax/xajax_core/xajax.inc.php'); $xajax = new xajax();

我试图编写一个脚本,混合我在互联网上找到的东西,以便将表单数据自动保存到mysql数据库。。。出现了一些错误,原因是脚本可以插入,但由于某些原因无法更新,因此每20秒我设置的时间会生成一个新行。。。有人能帮我找到并解决这个问题吗? 代码如下:

<?php
session_start();
unset($_SESSION['article_id']); 
require_once('xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();

function savetodb($form) {
    $title = $form["title"];
    $editor = $form["editor1"];

    //$host = 'localhost'; 
    //$username = 'my_user';  
    //$password = 'my_pass'; 
    //$database = 'test_db'; 
    //$connect = mysql_connect($host, $username, $password);
    //mysql_select_db($database, $connect);

    if ($_SESSION['article_id']=="") {
        $sql = "INSERT INTO draft (`title`, `content`) VALUES ('$title', '$editor')";
        $result = mysql_query($sql, $connect);
        $idlast = mysql_insert_id($connect);
        $_SESSION['article_id'] = $idlast;
    } else {
        $article_id = $_SESSION['article_id'];
        $sql = "UPDATE draft SET `title`='$title',`content`='$editor' WHERE `id`='$article_id'";
        $result = mysql_query($sql, $connect);
    }
    // Instantiate the object xajaxResponse
    $objResponse = new xajaxResponse();
    $objResponse->assign("autosavemsg","innerHTML", "<br />Record saved to database successfully!");
     $objResponse->alert('Done!');
    return $objResponse;

}
//$xajax->register(XAJAX_FUNCTION,'savetodb');
$xajax->registerFunction('savetodb');
$xajax->processRequest();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<?php $xajax->printJavascript('xajax'); ?>
</head>
<body>
<form name="form" id="form" enctype="multipart/form-data">
<?php
echo '<label>Title</label><input type="text" name="title" id="title"><br /><br />';
echo '<textarea name="editor1"></textarea>' ;
?>
<input type="button" name="save" onclick="xajax_savetodb(xajax.getFormValues('form'));" value="Save to Database">
</form>

<div id="autosavemsg"></div>

<script language="Javascript">
//Interval
var AutoSaveTime=20000;
//time object
var AutoSaveTimer;
SetAutoSave();
function SetAutoSave() {
  AutoSaveTimer=setInterval("xajax_savetodb(xajax.getFormValues('form'));",AutoSaveTime);
}
</script>
</body>
</html>
不幸的是,我甚至没有向我发出警报或我设置的消息。。 会议可能有问题?? 提前感谢

我不熟悉xajax,但根据我的逻辑,我认为你做得不对

我认为您必须有两个不同的文件,一个是HTML和javascript,另一个是负责插入或更新db的服务器端代码

现在,我认为您正在使用ajax调用文件本身,在代码的第三行中,您已经取消了$_会话['article_id'];这将在每次调用ajax时取消设置会话变量$\u session['article\u id']

所以我认为你必须制作两个不同的文件

file1.php 你有你的html和javascript文件,还有未设置的$_会话['article_id'];在里面排队

files2.php中包含与php和db相关的函数,并删除未设置的$\u会话['article\u id'];它的线条

您还必须在file1.php中设置ajax应该调用file2.php


我想这会奏效的

我也尝试删除未设置的会话,但仍然不起作用。。似乎没有在会话中设置id,这有点奇怪。你试过我关于制作两个不同文件的建议吗?如果是这样的话,你能编辑你原来的帖子并用你的新代码和两个文件的内容更新它吗?