2014-03-29 77 views
4

我陷入了一個問題,需要您們的支持。將動態數據從div傳遞到同一頁上的另一個div

我的問題是我想傳遞一個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 class="tabright" id="existingcase"> 
    <?php 
    $c_id = $_GET['case_id']; 
    echo $c_id; 
    ?>  
</div> 

// JavaScript代碼在同一頁

0上調用的div股利
<script> 
$(".linkright").click(function(){ 
    $(".tabright").hide(); 
    theDiv = $(this).attr("href"); 
    $(theDiv).slideToggle(); 
}); 
</script> 

它顯示在像這樣的網址index.php#existingcase?case_id=2012001,但從未將案件編號傳遞給#existingcase。並且#existingcase div也不會加載,但是不會傳遞caseid值,#existingcase加載。

任何建議將是偉大的。

+0

您可以使用JavaScript。只要獲得錨標記文本,並分配到'#existingcase' –

+0

試試這個小提琴http://jsfiddle.net/cjramki/JzAMw/ –

+0

我不明白你說什麼。我想從鏈接中捕獲案例ID並將它傳遞給同一頁面上的特定div #existingcase。 – tariq

回答

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代碼應該充滿股利。

+0

感謝您的回覆。我試過了,但它說「在此服務器上找不到請求的URL/XXXXXXX/existingcase」。 – tariq

2

我想你想打印單擊case_id在div沒有網頁加載。要做到這一點,你不想使用url傳遞它。你可以簡單地使用javascript來實現它。

如果您的div id existingcase只是更改您的代碼,如下所示。

您正在使用$row_mycases['case_id'];將相同的case_id作爲錨標記文本進行打印。所以,你可以很容易地使用JavaScript獲取文本,你可以很容易地在你的#existingcase div中打印它。

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

我不知道其它腳本。在.linkright點擊功能發生這種類似的代碼

$(".linkright").click(function(){ 
    $('#existingcase').text($(this).text()); //if your div id is existingcase it will print your case id. 
}); 

試試這個代碼。讓我知道結果。

SEE THIS FIDDLE DEMO

更新:

要通過客戶端的值,而頁面重載到服務器端,您可以使用jquery.post()方法。

將此PHP代碼放在頁面頂部。

<?php  
    if (isset($_POST['id'])) { 
    $caseid = $_POST['id']; 
    return print_r($caseid); 
    } 
?> 

$caseid將包含目前點擊case_id值。因此,您可以在此頁面的任何位置使用此$caseid。如果你點擊了另一種情況ID,將相對於當前點擊case_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()並將其分配到的id$_POST變量名。它會發布到yourPHPFile.php。你可以檢索像$caseid = $_POST['id'];那樣的值。

function (caseid) {中,caseid包含值$caseid。所以,只有在這個代碼中,我分配了$caseid = $_POST['id'];

通過這個,你可以直接打印點擊case_id文本到你的#exixtingcase股利。

+0

​​中的實際印刷的caseid將循環顯示數據庫中的所有caseid。所以當我點擊一個特定的caseid時,#existingcase div會出現,當前的div將消失。所以如果我不在href中提供div #existingcase,那麼它將如何知道去哪裏? – tariq

+0

如果你點擊每個'case_id',它應該在'div'中顯示案例ID? 看到小提琴演示。考慮那些'​​'是由你的循環創建的。如果您點擊這些案例ID,它會在'existingcase' div中顯示這些'case_id'。 –

+0

非常感謝。只要幫助我一件事。如何將打印的案例ID存儲在php變量的#existingcase中。因爲我想使用案例ID來進一步從數據庫中檢索數據。 – tariq

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> 

你會發現我說「數據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/

+0

感謝您的建議。如果可以提供任何jquery腳本以便如何從循環中捕獲數據,然後將其傳遞給特定的div #existingcase,那將是非常好的。在此先感謝 – tariq

+0

@tariq添加了一些AJAX代碼,讓我知道你面臨的任何問題 –

相關問題