私は複数の回答を読んだが、どれもうまくいきません。 私は何をしようとすると、PHPのforeachループのすべての結果をクリック可能にし、AJAXでそのデータを他のPHPファイルに送信することです、問題は今何でも、最後のforeachの結果は常に送信し、私がクリックした結果? (データベースなし)PHP foreachの結果ごとにAJAXのクリックポストを行う方法
ループは、関数のfunctions.phpに存在する:結果template.php処理
public function getForeachResult()
{
$response = $this->GetObject($parameters);
include 'template.php';
}
テンプレート:template.php AJAXスクリプトで
<?php
foreach ($response->Result->List as $key =>$value) {
?><table id="mytable"><tr>
<th>ID</th>
<th>Date</th>
<th>firstname</th>
<th>lastname</th>
</tr>
<?php foreach ($value as $key=>$value) {?>
<tr class="myrow">
<td><?php echo $value->ID; ?></td>
<td><?php echo date("d-m-Y", strtotime($value->Time)); ?></td>
<td><?php echo $value->FullName; ?></td>
<td><?php echo $value->LastName; ?></td>
</tr>
<?php } ?>
</table><br />
<?php } ?>
であります
<script>
$('.myrow').click(function() {
$.ajax({
type: "POST",
cache: false,
url: "post.php",
data: { action: 'goTo', value: <?php echo $value->ID ?>}
}).done(function(msg) {
$('.Data').html(msg);
});
});
012:下部に呼ばれますので、どのように私はAJAXは、私がクリックしたデータを送信することを確認することができます
if($_POST['action'] == 'goTo') {
var_dump ($_POST);
}
:datのは、私が唯一のforeachループ post.phpの最後の結果を得るに送信されpost.phpで
?
データを変更する必要が動作しませんちょうどこの
のようにクリックされたIDを取得しています(this).find(td:first).text()。trim()} – JYoThI
ここでの問題は、クリックされた行の識別名がないことです。そのため、常に最後の行しか取得できません。一意である可能性のあるクリック可能なボタンをテーブルに追加する – hungrykoala
2番目のループで変数$ keyおよび$ valueを再利用すると、予期しない結果が生じる可能性があります。 2番目のループの変数の名前を変更します。 – chiliNUT