这段代码,如果点击里面的文本div class="example4DOMWindow"
将定义的值发送到 php,然后取回 php 数据,并在弹出窗口中显示从 php 接收的数据。
这是示例http://jsfiddle.net/rigaconnect/q3RcV/1/
这是发送和接收数据的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);
}
});
});
这部分代码显示弹出窗口(示例在这里http://swip.codylindley.com/DOMWindowDemo.html)
<body>
<div id="first_var" class="example4DOMWindow" style="width: 50px;">text one</div>
<div id="second_var" class="example4DOMWindow" style="width: 50px;">text two</div>
<script type="text/javascript">
$('.example4DOMWindow').openDOMWindow({
eventType:'click',
windowSourceID:'#example4InlineContent',
});
</script>
<div id="example4InlineContent" style="display:none">
<div>
<div id="load"></div>
</div>
</div>
</body>
这是php文件代码
$p_one = $_POST['var1'];
$p_two = $_POST['var2'];
$test = $p_one. '<br>test<br>'. $p_two;
echo json_encode($test);
php
代码仅发送到var
已定义的代码。就像var one = $("#first_var").text();
这样,如果没有var
内部ajax
代码,则不会发送任何内容。并发送所有var
s。
必须将代码发送到php
仅单击的文本。用户点击text one
、发送text one
和不发送text two
;点击text two
,只发送text two
。
这里https://stackoverflow.com/a/17622947/2360831 / http://jsfiddle.net/aGWGn/5/
单击的文本作为值传递给javascript
.
试图像这样把所有东西放在一起
$(document).ready(function(){
document.body.onmousedown = whichElement;
var output = document.getElementById("load")
function whichElement(e) {
e = e || window.event;
var targ = e.target || e.srcElement;
if (targ.nodeType===3) {// defeat Safari bug
targ = targ.parentNode;
}
output.innerHTML = targ.innerHTML;
}
//var one = $("#first_var").text();
var one = targ;
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 = targ.innerHTML;
不行。。。。
上班的变化
改为var output = document.getElementById("load")
_var output = document.getElementById("load1")
在html中添加<div id="load1"></div>
并改变了
//var one = $("#first_var").text();
var one = targ;
var two = $("#second_var").text();
至var one = $("#load1").text();
现在看来工作了。但认为代码需要改进