使用ajax和json将单击的文本发送到php,并在弹出窗口中返回php数据

使用ajax和json将单击的文本发送到php,并在弹出窗口中返回php数据,php,ajax,json,Php,Ajax,Json,如果单击div class=“example4DOMWindow”中的文本,该代码将向php发送定义的值,然后返回php数据,并在弹出窗口中显示从php接收到的数据 下面是一个例子 这是发送和接收数据的ajax $(document).ready(function() { var one = $("#first_var").text(); var two = $("#second_var").text(); $.ajax({ type: "POST",

如果单击
div class=“example4DOMWindow”
中的文本,该代码将向php发送定义的值,然后返回php数据,并在弹出窗口中显示从php接收到的数据

下面是一个例子

这是发送和接收数据的ajax

$(document).ready(function()
{
    var one = $("#first_var").text();
    var two = $("#second_var").text();
    $.ajax({
        type: "POST",
        url: '__popup-window_ajax.php',
        data: {var1: one, var2: two },
        dataType: "json",
        success: function(data) {
            $('#load').html(data);
        }
    });
});
这部分代码显示弹出窗口(此处示例)

但代码未通过
var one=targ
php
文件(
var-two
也不通过)

根据我的理解,主要问题是如何将
var-targ
var-output
(?)传递到
var-one

请告诉我什么是不正确的

更新

data
更改为
data:{var1:output,var2:two},

并在弹出窗口中查看

[object HTMLDivElement]
test
text two
text two
更改为
var one=target.innerHTML但不起作用

更改以开始工作

var output=document.getElementById(“加载”)更改为
var output=document.getElementById(“加载”)

在html中添加了

改变

//var one = $("#first_var").text();
var one = targ;
var two = $("#second_var").text();
to
var one=$(“#加载1”).text()


现在看来这是一项工作。但是我认为代码需要改进

据我所知,您只需要将单击的文本传递给php,对吗

如果是这样,那么从使用jquery的那一刻起就不需要所有这些代码。您只需将“click”事件处理程序附加到
。example4DOMWindow
,并只发送单击的div的文本

index.html:

<body>
<!--
<script src="jquery-2.0.3.js"></script>
<script src="jquery.DOMWindow.js"></script>
-->
<div id="first_var" class="example4DOMWindow">text one</div>
<div id="second_var" class="example4DOMWindow">text two</div>

<div id="example4InlineContent" style="display:none">
   <div id="load"></div>
</div>

<script>
$(document).ready(function() {

  $('.example4DOMWindow').openDOMWindow({
      eventType:'click',
      windowSourceID:'#example4InlineContent',
  });  

  $(".example4DOMWindow").on('click', function(event){
    $.ajax({
      type: 'POST',
      url: '__popup-window_ajax.php',
      data: { 'clickedText' : $(this).text() },
      success: function(data) {
        $('#load').html(data);
      }
    });
  });

});
</script>

</body>
<?php
$var = $_POST['clickedText'];
echo json_encode($var);
?>

正文一
文本二
$(文档).ready(函数(){
$('.example4DOMWindow').openDOMWindow({
事件类型:'单击',
windowSourceID:“#示例4InLineContent”,
});  
$(“.example4DOMWindow”)。在('click',函数(事件){
$.ajax({
键入:“POST”,
url:“\uu弹出窗口\u ajax.php”,
数据:{'clickedText':$(this).text()},
成功:功能(数据){
$('#load').html(数据);
}
});
});
});
\uuuu弹出窗口\uajax.php:

<body>
<!--
<script src="jquery-2.0.3.js"></script>
<script src="jquery.DOMWindow.js"></script>
-->
<div id="first_var" class="example4DOMWindow">text one</div>
<div id="second_var" class="example4DOMWindow">text two</div>

<div id="example4InlineContent" style="display:none">
   <div id="load"></div>
</div>

<script>
$(document).ready(function() {

  $('.example4DOMWindow').openDOMWindow({
      eventType:'click',
      windowSourceID:'#example4InlineContent',
  });  

  $(".example4DOMWindow").on('click', function(event){
    $.ajax({
      type: 'POST',
      url: '__popup-window_ajax.php',
      data: { 'clickedText' : $(this).text() },
      success: function(data) {
        $('#load').html(data);
      }
    });
  });

});
</script>

</body>
<?php
$var = $_POST['clickedText'];
echo json_encode($var);
?>


是,只有单击的文本需要传递。谢谢,这行得通。只是无法理解为什么弹出窗口中的文本在
内。应该是
text-one
,但请参见
“text-one”
,这是因为您在PHP中使用的是
json\u-encode
,并且返回的是一个json对象,而不仅仅是一个字符串。如果您不想这样做,只需执行
echo$var
或使用
JSON.parse(data)
<?php
$var = $_POST['clickedText'];
echo json_encode($var);
?>