所以我遇到了一些问题。这也是我在stackoverflow上的第一篇文章,所以我可能会犯一些错误:)但这是我的代码,我相信我已经犯了一些大错误,但我无法弄明白。所以基本上我想要它做的是将用斜体字母标记的单词发送到同一文件中的php,然后php应该将其发送回来,以便jquery可以使用它并显示工具提示。但我有问题甚至把这个词发送到PHP。如果有人能解决这个问题我会很高兴,谢谢!而btw文件的所有内容都被称为tooltip.php
<?php
if(isset($_POST['ord'])){ echo $_POST['ord']; }
?>
<p>Sed ut perspiciatis, unde <i>mupp</i> iste natus error sit
<i>hej</i>voluptatem accusantiumdoloremque laudantium, totam rem aperiam
<i>eaque</i> ipsa, quae ab illo inventore veritatiset
quasi architecto beatae <i>hej</i> dicta sunt <i>html</i>, och <i>CSS</i></p>
<script>
$(document).ready(function() {
(function($){
$.fn.qtip = function(options){
return this.each(function(){
var x, y, ex, el = $(this);
el.on({
mouseenter: function(e){
ex = $('<div id="qtip"></div');
el.append(ex);
var tx = el.text() ;
$.post( 'tooltip.php', {ord: tx} function( data ) {
if(!data)
data = <?php echo json_encode($testvar); ?>;
ex.html( <?php echo json_encode($testvar); ?> );
});
var os = el.offset();
y = os.top + el.height();
x = os.left;
ex.offset({top: y, left: x});
ex.css('font-size', '0.9em');
},
mouseleave: function(e){
ex.remove();
}
});
});
};
}(jQuery));
$('i').qtip();
});
</script>
</body>
</html>
答案 0 :(得分:0)
几件事,$ testvar未定义。它是一个php var,你没有在JS之前的任何地方设置它。
另外,在$ .post中,你要求同一页面的回复...这将是所有的HTML,但我猜你只想要它的一部分。
基本上,你可能需要更多的php(如果你在同一个php页面上设置了所有这些。)<?php
if(isset($_POST)){
print_r($_POST);
die();
}else{
//now render the page since it was not posted to
?>
your html and js
...
...
<?php }?>
这个shoud将发布的值(假设你的js正确)返回给jquery回调。所以看看它是否成功,你将不得不使用js而不是php查看它。
类似
$.post( 'tooltip.php', {ord: tx} function( data ) {
console.log(data);
不是一个完整的答案,但希望能让你朝着正确的方向前进