将动态数据从div传递到同一页面上的另一个div

时间:2014-03-29 07:39:41

标签: php jquery html

我陷入困境,需要你们的支持。

我的问题是我想将一个php变量(通过数据库循环动态调用)传递给同一页面上的另一个div,而不刷新页面

//这是一个循环

<td><a class="linkright" href="#existingcase?case_id=<?php echo $row_mycases['case_id']; ?>"><?php echo $row_mycases['case_id']; ?></a></td>

//应该获得上述php变量的div

<div class="tabright" id="existingcase">
    <?php 
    $c_id = $_GET['case_id'];
    echo $c_id;
    ?>      
</div>

//在同一页面上调用div的javascript代码

<script>
$(".linkright").click(function(){
    $(".tabright").hide();
    theDiv = $(this).attr("href");
    $(theDiv).slideToggle();
});
</script>

它显示在此index.php#existingcase?case_id=2012001的网址中,但从未将案例ID传递给#existingcase。并且#existingcase div也没有加载,但没有传递caseid值,#existingcase加载。

任何建议都会很棒。

3 个答案:

答案 0 :(得分:2)

我认为你想在没有页面加载的情况下在div中打印单击的case_id。为此,您不希望使用url传递它。你可以使用javascript来实现它。

如果您的div ID existingcase只是在下面更改您的代码。

使用case_id打印与$row_mycases['case_id'];相同的#existingcase文本。因此,您可以使用javascript轻松获取该文本,并可以轻松地在<td><a class="linkright" href="#existingcase"><?php echo $row_mycases['case_id']; ?></a></td> div中打印。

.linkright

我不知道你的其他剧本。在$(".linkright").click(function(){ $('#existingcase').text($(this).text()); //if your div id is existingcase it will print your case id. }); 点击功能中放置此代码

jquery.post()

试试这段代码。让我知道结果。

SEE THIS FIDDLE DEMO

<强>更新:

要将客户端值传递给服务器端而不重新加载页面,您可以使用PHP方法。

将此<?php if (isset($_POST['id'])) { $caseid = $_POST['id']; return print_r($caseid); } ?> 代码放在页面顶部。

$caseid

case_id将包含当前点击的$caseid值。因此,您可以在此页面中的任何位置使用此case_id。如果您点击另一个案例ID,它将根据当前点击的js进行更新 用以下代码替换$(".linkright").click(function () { $(".tabright").hide(); theDiv = $(this).attr("href"); $(theDiv).slideToggle(); $.post("yourPHPFile.php", { //use your current php file name instead of "yourPHPFile.php" id: $(this).text() }, function (caseid) { $('#existingcase').text(caseid); }); });

id : $(this).text()

.text()表示获取当前元素$_POST并将其分配给id变量名yourPHPFile.php。它会发布到$caseid = $_POST['id'];。您可以像function (caseid) {一样检索该值。

$caseid中,caseid包含$caseid = $_POST['id'];的值。因此,仅在此代码中,我指定了#exixtingcase

通过这种方式,您可以直接将点击的case_id文本打印到{{1}} div。

答案 1 :(得分:1)

#之后的任何值都不会发送到服务器。由于PHP是一种服务器技术,因此PHP代码永远不会在#

之后看到这些值
<a class="linkright" href="#existingcase?case_id=<?php echo $row_mycases['case_id']; ?>">

尝试做

<a class="linkright" href="existingcase?case_id=<?php echo $row_mycases['case_id']; ?>">

相反,你的PHP代码应该填充div。

答案 2 :(得分:0)

在我理解你的解释时,我认为你犯了一个错误。您正在尝试将Javascript和PHP与页面刷新混合使用。这是不可能通过您的代码,因为PHP是服务器端,只能在服务器上工作。您无法在同一页面中执行href并期望执行此div中的PHP代码。 PHP代码不会出现。您可以在浏览器中尝试“查看源代码”并查看它。 我认为解决问题的唯一方法是使用Javascript调用AJAX,获取响应并放在任何你想要的地方(不刷新页面)

希望这有助于并帮助我的英语

编辑:这是一个使用Jquery进行简单AJAX调用的工作示例。 你的桌子应该是这样的:

<td>
    <a class="linkright" href="#" data-id="<?php echo $row_mycases['case_id']; ?>"><?php echo $row_mycases['case_id']; ?></a>
</td>

您会注意到我添加了“data-id”属性。我们将在AJAX调用中使用此id。把它放在你的JS:

// Create Jquery ajax request
$("a.linkright").click( function() {
        $.get("example.php",   // Put your php page here
              { case_id : $(this).attr("data-id") }, // Get data, taken from the a tag
              function(data) {  // Call back function displays the response
                   $(".tabright").html("<p>" + data + "</p>");
          }); // Get 
    }); // click event
}); // Document Ready

我测试了代码并且它正在运行。您需要对其进行自定义才能使用。如果所有这些AJAX对您来说都是新手,我建议您使用以下链接:

http://www.w3schools.com/ajax/default.ASP

http://learn.jquery.com/ajax/