我从我的数据库中填充表格,它看起来像这样:
<form name = "Form" role="form" action ="php/teilnehmen.php" method="POST">
<fieldset>
<table width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th>ID</th>
<th>Studienfach</th>
<th>Teilnehmer/in</th>
<th>Teilnehmen</th>
</tr>
</thead>
<tbody>
//<?php php code.....
$i =0;
$sizeofstudienfaecherseperate =
count($studienfaecherseperate);
for ($i; $i < $sizeofstudienfaecherseperate; $i++) {
?>
<tr class="odd gradeX">
<td ><?php echo($i+1);?></td>
<td class="studienfach"><?php echo($studienfaecherseperate[$i]);?>
<input type="hidden" name="PARAM_STUDIENFACH" id="PARAM_STUDIENFACH"
value="<?php echo($studienfaecherseperate[$i]);?>"> </input>
</td>
<td ><?php echo($teilnehmer[$i]);?></td>
<td width="10%">
<?php if ($teilnahmestatus[$i] =="0"){ ?>
<button type="submit" class="btn btn-success use-address"
name="teilnehmern"id="teilnehmen">Teilnehmen</button>
<?php }else{?>
<button type="submit" class="btn btn-danger use-address" name="teilnahme-beenden"
id="teilnahme-beenden">Teilnahme beenden</button>
<?php }?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</fieldset> <!-- /.table-responsive -->
表格显示效果很好,我的问题是当我尝试将特定行的第二列值&#34; PARAM_STUDIENFACH&#34; 提交到我的php网络服务时。它总是让我回到最后的价值。我知道,因为我在每一行都使用相同的 id ,所以它会被覆盖。我尝试使用JavaScript从论坛中的其他问题返回点击行的值,但它对我没有用。如果有帮助,我会使用引导程序表。
编辑1:
感谢@Taplar的回答,我设法找到了解决问题的方法。我使用此JavaScript来检索数据,使用ajax发送帖子请求。这是我使用的代码:
$(".use-address").click(function() {
var item = $(this).closest("tr") // Finds the closest row <tr>
.find(".studienfach") // Gets a descendent with class="nr"
.text(); // Retrieves the text within <td>
$.ajax({
type: "POST",
dataType: "json",
url: "php/teilnehmen.php",
data: {PARAM_STUDIENFACH:item},
success: function(data){
alert(item);
},
error: function(e){
console.log(e.message);
}
});
});
我现在的问题是警告&#34;项目&#34;显示正确但在我的数据库中它保存为以下示例:
item = a(在警报a中显示)
item = a \ n(它在数据库中保存的内容与空格一样\ n)
我试图在发送之前修剪该项目,但我得到了相同的结果
使用以下代码行获取ajax发送的项目:
$studienfach = null;
if(isset($_POST['PARAM_STUDIENFACH']))
$studienfach = $mysqli->real_escape_string($_POST['PARAM_STUDIENFACH']);
编辑2:
我设法解决了我的第二个问题:
$pos= strpos($studienfach, "\\");
$studienfachtemp = substr($studienfach, 0,$pos);
trim($studienfachtemp);
如果有更多的优雅或正确的方法来做到这一点!请发布!谢谢大家。
答案 0 :(得分:1)
<elem1>
<elem2 class="getMe"></elem2>
<elem3></elem3>
</elem1>
快速上下文查找参考。假设您有一个点击事件绑定在所有&#39; elem3&#39;在你的页面上。当您点击它时,您想要获得关联的&#39; elem2&#39;,而不是全部。通过该课程,您可以通过上下文来查看此元素。
//'this' being the elem3 that was clicked
$(this).closest('elem1').find('.getMe');
从您点击的元素中,它会找到共享的&#39; elem1&#39;两个人的父母&#39; elem2&#39;和&#39; elem3&#39;然后只找到&#39; .getMe&#39;属于那个父母。
更多阅读材料:http://learn.jquery.com/using-jquery-core/working-with-selections/