将jquery变量数据发送到同一文件中的php


Sending jquery variable data to php in the same file

所以我遇到了一些问题。这也是我在stackoverflow上的第一篇帖子,所以我可能会犯一些错误:)但这是我的代码,我相信我犯了一些大错误,但我真的无法弄清楚。因此,基本上我希望它做的是将用斜体字母标记的单词发送到同一文件中的php,然后php应该将其发回,以便jquery可以使用它并显示工具提示。但我甚至在将单词发送到php时都遇到了问题。如果有人能解决这个问题,我会非常高兴,谢谢!顺便说一句,所有内容都写入的文件名为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>

两件事,$testvar是未定义的。这是一个php-var,在JS中请求它之前,您没有在任何地方设置它。

此外,在$.帖子中,你要求从同一页面回复。。。这将是所有的html,但我猜你只想要它的一部分。

基本上,你可能需要更多的php(如果你想把所有的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 }?>

这应该将发布的值(假设js是正确的)返回给jquery回调。因此,看看它是否成功,您将不得不使用js而不是php来查看它。

类似的东西

$.post( 'tooltip.php', {ord: tx} function( data ) {
  console.log(data);

不是一个完整的答案,但希望能让你朝着正确的方向前进