繁体   English   中英

JEdi​​table不在MySQL中保存

[英]JEditable Not Saving in Mysql

我不知道这是否正确-我只是按照可编辑网站上的示例进行操作,但似乎无法使此简单代码正常工作。 我只想将数据保存到数据库中,但仍在页面上显示更改。

下面是我的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" debug="true">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Jeditable WYSIWYG Custom Input Demo</title>
<meta name="generator" content="Mephisto" />
<link href="http://www.appelsiini.net/stylesheets/main2.css" rel="stylesheet" type="text/css" />
<link rel="alternate" type="application/atom+xml" href="http://feeds.feedburner.com/tuupola" title="Atom feed" />
<script src="/mint/?js" type="text/javascript"></script>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"" 

type="text/javascript" charset="utf-8"></script>
<script src="http://www.appelsiini.net/projects/jeditable/wysiwyg/wysiwyg/jquery.wysiwyg.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://www.appelsiini.net/projects/jeditable/wysiwyg/wysiwyg/jquery.wysiwyg.css" type="text/css" media="screen" charset="utf-8">

<script src="http://www.appelsiini.net/projects/jeditable/jquery.jeditable.js" type="text/javascript" charset="utf-8"></script>
<script src="http://www.appelsiini.net/projects/jeditable/wysiwyg/jquery.jeditable.wysiwyg.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8">
$(function() {

  /* Fix FireBug */
  /*
  if ($.browser.mozilla) {
      window.loadFirebugConsole();    
  };
  */  
  /* Handle links inside editable area. */
  $('.editable > a').bind('click', function() {
      $(this).parent().trigger('click');
      return false; 
  });

$('#wysiwyg_2').editable('test-jedit.php', 

{ 
    id   : 1,
    content : 'wysiwyg_2',
    indicator : '<img src="../img/indicator.gif">',
    type      : 'POST',
    type      : 'wysiwyg',
    width     : 640,
    height    : 'auto',
    onblur    : 'ignore',
    submit    : 'OK',
    cancel    : 'Cancel',
    wysiwyg   : { controls : { separator04         : { visible : true },
                               insertOrderedList   : { visible : true },
                               insertUnorderedList : { visible : true }
                }
    }
  });

});
</script>

<style type="text/css">
#sidebar {
  width: 0px;
}

#content {
  width: 770px;
}
</style>
</head>
<body>
  <div id="wrap"> 
    <div id="header">
      <p>
        <h1>Jeditable</h1><br />
        <small>Edit in place plugin for jQuery.</small>
        <ul id="nav">
          <li id="first"><a href="/" class="active">weblog</a></li>
          <li><a href="/projects" class="last">projects</a></li>
        </ul>
      </p>
    </div>
    <div id="content">      
    <div class="entry">            
    <p>You might also want to check <a href="../custom.html">other custom inputs demo</a>.

    <h2>Extra settings</h2>
    <div style="width: 640px" class="editable" id="wysiwyg_2"><img 

src="%5C%22http://%5C%22"><span style="\&quot;font-weight:" bold;\"="">gdgfd<span style="font-style: italic;">
gfd</span><big><br>sdfsdf<br>sdfsdf<br><br></big></span></div>
    </div>

    <div id="sidebar">
  </div>  
  <div id="footer">
  </div>
</body>
</html>

这是PHP代码:

<?php
 $con = mysql_connect("localhost","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);  

$id      = $_POST['id'];
$content = $_POST['content'];
mysql_query("INSERT INTO editable (id, content)
VALUES ('$id', '$content')");

echo $content;
mysql_close($con);
?> 

首先要说的是请阅读有关SQL注入php.net页面

对你的问题...

我想我可能已经发现了一个问题...您的JavaScript在DOM准备就绪之前就已经执行了...将您的JavaScript代码(全部)包含在以下代码块中:

$(document).ready(function() {
  // your code here
});

这意味着该函数中的代码仅在整个页面加载完毕后才会执行...在未加载的DOM元素上调用函数会导致您出现问题... 对ready()的进一步阅读 ...

查看代码,我看不到明显的问题 -但是,您可以执行一些基本的操作来调试此问题...首先检查(使用Firebug之类的东西)AJAX请求实际上正在发送...

其次,您可以检查PHP MySQL代码是否正常工作...

$result = mysql_query($query); // execute your query

// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
} 

// if you get to here the query worked fine ...

更新资料

我拿了你的代码并创建了一个jsfiddle

要使其正常工作,需要进行一些小的更改:

<div style="width: 640px" class="editable" id="wysiwyg_2">
<img src="%5C%22http://%5C%22"><span style="\&quot;font-weight:" bold;\"="">gdgfd
<span style="font-style: italic;"> gfd</span>
<big><br>sdfsdf<br>sdfsdf<br><br></big></span></div>

应该 :

<div style="width: 640px" class="editable" id="wysiwyg_2"><span style="font-weight: bold;">gdgfd<span style="font-style: italic;">
gfd</span><br>sdfsdf<br>sdfsdf<br><br></span></div>

我已经删除了奇怪的角色!

更新2

当按下OK按钮时,PHP被调用-它发布以下数据:

1:wysiwyg_2
value:<span style="font-weight: bold;">gdgfd<span style="font-style: italic;">
gfd</span><big><br>sdfsdf<br>sdfsdf<br><br></big></span>

因此,在您的PHP中,您需要将$_POST['content']更改$_POST['value']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM