我陷入困境,需要你们的支持。
我的问题是我想将一个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
加载。
任何建议都会很棒。
答案 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对您来说都是新手,我建议您使用以下链接: