我知道这个主题有几个主题,但在我花了2到3个小时试图从中获得好处后,我才决定在特定点上提出这个问题。
所以这是我的问题:我有一个表,我使用jQuery函数来选择该表的一行。现在我真正想做的是获取包含在行的第一个td中的div的文本内容。
我已经在其上使用了一个getter,我正在使用警报检查getted值,如下面的代码所示:
$("#myRow").click(function() {
$(".selectedRow").removeClass("selectedRow").addClass("unselected");
$(this).addClass("selectedRow").removeClass("unselected");
var myValue = $(".selectedRow .firstTd div").text();
alert('myValue');
});
所以现在,我要做的是通过这段代码替换我的警报,通过ajax请求发送myValue变量:
$.ajax({
type: 'get',
url: 'index.php',
data: {"myValue" : myValue},
success: function(rs)
{
alert(myValue);
}
});
然后,回到我的PHP代码,我想通过使用echo来观察获得的变量,就像这样:
<?php echo $_GET['myValue']; ?>
但是我无法知道我的页面是否因为回声只是打印而没有...所以我想知道是否有人可以为我做点什么。感谢。
PS:哦,顺便说一下;我真的不知道这是否重要,但我的页面index.php已经通过帖子接收数据。答案 0 :(得分:1)
你不能,但读this,php在服务器上,而js通常在客户端运行,但你的ajax技巧可以工作。只需在接收php中进行一些处理。
我通常将我的ajax接收结束放在另一个文件中,然后通过发布的变量处理其余部分。
尝试将$_GET['myValue'];
放入if或switch。
答案 1 :(得分:0)
执行请求var的var转储以查看是否有任何事情发生:
<?php
var_dump($_REQUEST);
如果没有,请在'myValue'上执行console.log()以确保它在发送ajax请求之前存在 - 问题可能在于你的js而不是你的php。
答案 2 :(得分:0)
如果您要发布数据,请相应调整 - 例如
$.ajax({
type: 'post',
url: 'index.php',
data: {"myValue" : myValue},
success: function(data)
{
console.log('successfuly posted:');
console.log(data);
}
});
然后:
<?php echo $_POST['myValue']; ?>
如果您使用GET,您的数据将在网址中,例如:
index.php?myValue=something
答案 3 :(得分:0)
我不确定你是否意识到这一点,但你应该将你的功能包装在文件就绪声明中,如下所示。 接下来,在某些操作上调用AJAX请求,在这种情况下,我们可以单击表中的行。
$(document).ready(function () {
$("#myRow").click(function() {
$(".selectedRow").removeClass("selectedRow").addClass("unselected");
$(this).addClass("selectedRow").removeClass("unselected");
var myValue = $(".selectedRow .firstTd div").text();
alert('myValue');
$.ajax({
type: 'get',
url: 'index.php',
data: {"myValue" : myValue},
success: function(data)
{
console.log('you have posted:' + data.myValue);
}
});
});
});
答案 4 :(得分:0)
好的,似乎我完全误解了$ .ajax函数的工作方式。 我现在使用$ .post函数(实际上是相同的),这样:
$.post('pageElement.php', { myValue : $(".selectedRow .firstTd div").text() },
function(data) { $("#test").html(data); }
);
网址“pageElement.php”是指包含此代码的网页:
<div><?php echo $_POST['myValue']; ?></div>
在进程结束时调用的函数只是将此代码放入原始页面的div中,因此我现在可以将其用作php变量,然后通过表单将其发送到另一个页面。