0

我知道关于这个主题有几个主题,但是在我花了 2 或 3 个小时试图从中得到一些好处之后,我决定就一个特定的问题提出这个问题。

所以这是我的问题:我有一个表,我正在使用 jQuery 函数来选择该表的一行。现在我真正想做的是获取包含在行的第一个 td 中的 div 的文本内容。

我已经在它上面使用了一个 getter,我正在使用警报检查获取的值,正如您在以下代码中看到的那样:

    $("#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 已经通过帖子接收数据。

4

5 回答 5

1

您不能,但请阅读本文,php 在服务器上,而 js 通常在客户端上运行,但您的 ajax 技巧可以工作。只需在接收 php 中进行一些处理。

我通常将我的 ajax 接收端放在不同的文件中,并通过发布的变量处理其余部分。

只需尝试将其$_GET['myValue'];放入 if 或 switch 中。

于 2013-07-24T13:32:37.987 回答
0

好吧,看来我完全误解了 $.ajax 函数的工作方式。我现在确实使用 $.post 函数(实际上是相同的),这样:

    $.post('pageElement.php', { myValue : $(".selectedRow .firstTd div").text() },
        function(data) { $("#test").html(data); }
    );

url "pageElement.php" 指的是包含此代码的页面:

    <div><?php echo $_POST['myValue']; ?></div>

在过程结束时调用的函数只是将此代码放入原始页面的 div 中,因此我现在可以将其用作 php 变量,然后通过表单将其发送到另一个页面。

于 2013-07-25T09:41:07.660 回答
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 您的数据将在 url 中,例如:

index.php?myValue=something
于 2013-07-24T13:34:27.317 回答
0

对请求 var 进行 var dump 以查看是否有任何事情通过:

<?php
var_dump($_REQUEST);

如果没有,请在“myValue”上执行 console.log() 以确保在发送 ajax 请求之前它存在 - 问题可能出在您的 js 而不是您的 php.ini 中。

于 2013-07-24T13:32:27.520 回答
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);
       }
     });

  });

});
于 2013-07-24T13:43:57.530 回答