2

テキストボックスのあるフォームがあります。たとえば、そのテキスト ボックスに 3 を入力すると、Javascript で作成した 3 つのテキスト ボックスが表示されます。

これはhtmlコードです:

<span>Cate intrebari va contine chestionarul?</span>
        <input type='text' id='nrintrebari'/>
    </td>
    <td>
    <input type='button'  value='Creaza intrebari' onclick='generate()'/>
    <input type='button' value='Save'  id='btn_intrebari'/> 
    </td>
</tr>
</table>

<br><br>

<div id='sim'>

</div>

これは、テキスト ボックスを作成する JavaScript コードです。

var a=0;

function generate()
{
  var tot = document.getElementById("nrintrebari").value;
var tbl = document.getElementById("sim");

for(var i =1;i<=tot;i++)
{
  a++;
  tbl.innerHTML  = tbl.innerHTML  +'Intrebare nr.'+ a +' <input type="text"  size="100" maxlength= "200" name="intrebare[]" style="height:30px; background-color:#B8B8B8; " > <br><br><br> ';
}

}

テキスト ボックスから php ファイルにデータを渡したい場合は、次のように foreach を実行します。

 foreach($_POST['intrebare'] AS $textbox)
{   
    $sql="INSERT INTO intrebari values ('','".$_SESSION['cod']."','$textbox','1')";

    if (!mysql_query($sql))
      {
        die('Error: ' . mysql_error());
      }

}

すべて問題ありませんが、これはページの更新で行われます。ページを更新せずにこれを行いたいので、Ajax を使用することにしました。このような:

$(document).ready(function () {
    $('#btn').click(function () {
        $.ajax({
            type: "POST",
            url: 'pag1.php',
            data: "intrebare[]=" + $('#intrebare[]').val(),
            success: function (data) {
                $('#status').html(data);
            }
        });
    });
});

Javascriptコードで配列として名前を付けて宣言したテキストボックスの名前を使用しています:intrebare []ですが、ボタンを押しても何も起こりません。テキストボックスをシンプルに宣言すると、配列とは異なり、intrebare として値が渡されます。配列のように Ajax 経由でデータを送信するにはどうすればよいですか?

4

3 に答える 3

0

"intrebare[] ... を使用しないでください。

「intrebare」しか使えない

また、別の方法は var str = $("form").serialize(); です。フォームを使用する場合は、フォームから値を取得します。

于 2012-09-18T13:38:32.713 に答える
0
<form method="POST" id="textvalues">
<span>Cate intrebari va contine chestionarul?</span>
    <input type='text' id='nrintrebari'/>
</td>
<td>
<input type='button'  value='Creaza intrebari' onclick='generate()'/>
<input type='button' value='Save'  id='btn_intrebari'/> 
</td>
</tr>
</table>

<br><br>

<div id='sim'>

</div>
</form>

$(document).ready(function () {
    $('#btn').click(function () {
        $.ajax({
            type: "POST",
            url: 'pag1.php',
            data: "intrebare[]=" + $('#intrebare[]').val(),
            success: function (data) {
                $('#status').html(data);
            }
        });
    });
});

この方法で値をphpページにも送信できます

于 2012-09-18T13:46:21.510 に答える
0

名前を「#whatevername」として使用することはできません。これにはコントロールの ID を使用します。また、同じ ID を持つコントロールを使用できない場合 (可能ですが、推奨されません)、すべてのテキスト ボックスにクラスを指定し、すべてのコントロールからすべての値を取得できます。

var a = 0;
function generate() {
var tot = $("#nrintrebari").val();
var tbl = $("#sim");    
for (var i = 1; i <= tot; i++) {
    a++;
    tbl.append('Intrebare nr.' + a + '<input type="text" size="100" maxlength= "200" class="intrebare" style="height:30px; background-color:#B8B8B8; " >');
}   
}

また、これはテーブル/div にコントロールやテキストを追加するための完璧なアプローチではありません。しかし、それは何らかの形であなたを助けることができます.

このような値を取得します。

var values = [];
$(".interbare").each(function () {
values.push($(this).val());
});

これで、values 配列を文字列 (values.join(',')) または配列として、任意のページまたはサービスに渡すことができます。

これがうまくいくことを願っています。

于 2012-09-18T13:51:59.133 に答える