0

私の理解では、 $_POST データを取得する唯一の方法はname、次のように要素の属性を使用することです。

<INPUT type="text" name="txt">

そしてPHP部分:

<?php $text = $_POST["txt"]; ?>

たとえば、プレーンテキストを含むセルを含むテーブルがあります。

<td class="textField" id="txt1"> Some text </td>

これらの表のセルにテキストを投稿し、クラスまたは ID を使用してそれらを取得する方法はありますか? これを回避する賢い方法があるのではないでしょうか?<td>name 属性がないため、質問の理由です。

ありがとう!

4

4 に答える 4

1

ajax を使用して、javascript でテーブルから値を取得できます。JQuery はこれに適したライブラリです。

http://api.jquery.com/category/ajax/

于 2012-06-01T21:15:35.823 に答える
0

すべて同じ名前の多くのフォームフィールドから値を取得するには(PHPでループを使用して値を生成するため)、フィールドの名前に角かっこを追加します。
簡単な例:

<form method="post">
<input type=text name="myfield[]">  
<input type=text name="myfield[]">  
<input type=text name="myfield[]">  
<input type=text name="myfield[]">  
</form>

コードに追加する場合:

<?php print_r($_POST); ?>  

$ _POST変数には、$ _ POST['myfield'][0]から$_POST['myfield'][3]までの4つの値を持つ"myfield"という名前の配列が設定されていることがわかります。次に、PHPでforeachループを使用して、すべての値を取得できます。

于 2012-06-01T22:14:09.490 に答える
0

最終的にうまくいった解決策は、jQuery を使用してデータを取得し、JSON でエンコードして、残りのフォーム データのシリアル配列に追加することでした。

$("#orderForm").submit(function(e) {
    e.preventDefault();

    // Get NON-INPUT table cell data
    var subtotal = new Array();
    $('#priceTable td.subtotal').each(function() {
        subtotal.push($(this).html());
    });

    // Get all INPUT form data and organize as array
    var formData = $(this).serializeArray();

    // Encode with JSON
    var subArray = JSON.stringify(subtotal);

    // Add to formData array
    formData.push({name: 'sub', value: subArray});

    // Submit with AJAX
    $.ajax({
        url: "submitOrder.php",
        data: formData,
        type: 'post',
        success: function(data) {
            alert(data);
        }
    });
});

そしてPHP側では:

$subtotals = json_decode($_POST['sub']);
于 2012-06-06T17:15:21.170 に答える
0

$_POSTリクエストから$_GET来ました。つまり、ブラウザはそれらをヘッダーとともに送信し、PHP$_POST$_GET、、、、$_COOKIEおよび$_REQUEST. ブラウザは、リクエストでテーブルの内容を送信しません。

フィールドを「読み取り専用」にしようとしている場合は、間違った方法で行っています。フィールドが読み取り専用の場合、ブラウザーが同じ値を再送信することを決して信頼すべきではありません。

于 2012-06-01T21:02:24.893 に答える