0

テーブルの行をその場で追加および削除する管理ページがあります。このページにはデータベース内の既存のデータ(主にsku_codeと5つの異なる価格で構成されています)が読み込まれますが、その場で行を追加し、対応するskusと価格を入力すると、それらも保存したいと思います。データベース。

問題は、Javascriptを使用してクライアント側で行うこと(その場でテーブル行を追加すること)が、メインの変数をinnerHTML = '<input type="text">介してアクセスできないことです。$_POST<form>

つまり、基本的にはJavascriptを介して追加するので、それらを埋めてデータベースに保存することもできます。ただし、$_POST値は空です。Javascriptコードは正常に機能します。どこからデバッグを始めればいいのかわかりません。

これが私が使っているJavascriptコードです

function insert_record(){

    var my_table = document.getElementById('my_table')
    var tr = my_table.insertRow(my_table.rows.length-1)
    //id-ul curent, numar toate row-urile - 1 (care este butonul OK)

    var c_id = my_table.rows.length-2

        tr.id = 'row_' + c_id + ''
    var tr_td_1 = tr.insertCell(0)
        tr_td_1.className = 'text2'
        tr_td_1.align = 'center'
        tr_td_1.innerHTML = 'SKU'
    var tr_td_2 = tr.insertCell(1)  
        tr_td_2.className = 'text3'
        tr_td_2.width = '63'
        tr_td_2.innerHTML = '<input name="sku_' + c_id + '" type="text" id="sku_' + c_id + '" size="33" value="">'

....これにより、送信ボタンを含む最後の直前にテーブル内が追加され、その後に

4

3 に答える 3

1

name属性を指定する必要があります。フィールドの数が無制限であることが心配な場合は、入力変数の配列を選択してください。

このような

<input type="text" name="field1[]">

これで、次のように投稿でそれらにアクセスできます。

$_POST['field1']  //this is an array of fields

編集:

まず、作業を容易にするjqueryなどのライブラリを使用する必要があります。

于 2012-09-04T11:21:20.097 に答える
1

要素にラベルを割り当てる必要があります。その後、次のページでそれをつかむことができます。

innerHTML = <input type="text">使用する代わりに

<script>
      function addElement(tag_type, target, parameters) {
        //Create element
        var newElement = document.createElement(tag_type);

        //Add parameters
        if (typeof parameters != 'undefined') {
          for (parameter_name in parameters) {
            newElement.setAttribute(parameter_name, parameters[parameter_name]);
          }
        }

        //Append element to target
        document.getElementById(target).appendChild(newElement);
      }
    </script>

この関数は、偶数をクリックするか手動で呼び出すことができます。addElement('INPUT','targetTag',{id:'my_input_tag', name:'my_input_tag', type:'text', size:'5'});

于 2012-09-04T11:26:14.780 に答える
0

@shailが提案するような関数 を試すのではなく、すべてのフィールドが内にformあり、すべてに名前を付けていることを確認することをお勧めします。ajax

私の意見では、彼らは問題を解決しておらず、ただそれを避けているだけです。

于 2012-09-04T11:33:42.683 に答える