使用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();
tovar 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);
?>