0

選択したテーブルから行のデータを収集して結果に使用するにはどうすればよいですか?

行を選択して関数が呼び出されたら、データ入力画面を表示するために使用しているJavaScriptを次に示します。次に、(1) 選択した行のデータの一部と (2) 収集される新しいデータを含むフォームを PHP で設計する必要があります。

行を選択してデータ入力フォームを呼び出す Javascript は次のとおりです。

$(document).ready(function () {
    $("tr").live('click',function(){
        $.post('data_entry_form.php', function(data) {
            $('#section2').html(data);
        });
    });
});

ここにPHPスクリプトがあります

<?php
require_once "config.php";
$dbh = new PDO($dsn, $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$result = $dbh->query("SELECT aif_id, fee_source_id, company_name_per_sedar, document_filing_date FROM a_aif ORDER BY aif_id DESC");
$result->setFetchMode(PDO::FETCH_ASSOC);

echo "<table id=\"all_aifs\">";
echo "<tr>";
echo "<th><b>Document ID</b></th>";
echo "<th><b>Pubco Name</b></th>";
echo "<th><b>Filing Date</b></th>";
echo "<th><b>PDF</b></th>";
echo "</tr>";

foreach($result as $index => $row) {
echo "<tr>";
echo "<td>$row[fee_source_id]</td>";
echo "<td>$row[company_name_per_sedar]</td>";
echo "<td>$row[document_filing_date]</td>";
echo "<td>Placeholder</td>";
echo "</tr>";
}

echo "</table>";
echo "<br>";
$dbh = NULL;
?>
4

2 に答える 2

0

イベント ハンドラー内で、 this と $(this) は選択した行を参照します。

$("tr").live('click',function(){
    // this.cells[1] is the cell that contains Pubco Name
    // You can also use $(this).children("td")[1]
    ...
});
于 2013-01-01T21:16:58.320 に答える
0

この問題に対する「正しい」答えは、DOM から読み取ることではありません。決して良い考えではありません。レコード ID を ajax 呼び出しに渡し、ajax 呼び出しが既に入力されたフォームを返すようにすることをお勧めします。

//PHP
//place the data attribute in the tr
echo "<tr data-recordId='".$row['id']."'>";


//JS
$(document).ready(function () {
    $("tr").live('click',function(){

        //Get the ID from the row clicked
        var id = $(this).data('recordId'); 

        //short-hand
        $('#section2').load('data_entry_form.php?id='+id);

    });
});

$_REQUEST['id']次に、編集中のフォームのIDを取得するために、ajaxページが読み取られます。

//Ajax side PHP
$id = (int)$_REQUEST['id'];
//Fetch data and use it to pre-populate form item

このように入力を事前に入力します

<input type="text" value="<?php  echo $row['value']; ?>" />

また

echo '<input type="text" value="'.$row['value'].'" />';

注: 値に引用符が含まれている場合は、それらをコードに置き換えます。&quot;

echo '<input type="text" value="'.str_replace('"', '&quot;', $row['value']).'" />';
于 2013-01-01T21:19:20.477 に答える