0

ボタンがクリックされるたびにJavaスクリプトを介して2つのフィールドが動的に生成されるフォームがあります.ボタンがクリックされるたびに、2つのテキストフィールドが何度も生成されます.今、非表示で生成されたテキストフィールドの数を取得しましたJavaScript のフィールド。コントローラーで hiddenfield の値を取得し、データベースにテキスト フィールドの値を挿入するには、テキスト ボックスの値を入力するたびにデータにカンマを追加する方法を教えてください。助けてください。

私のJavaScriptは

<script>
var countbox=0;
var textbox1=0;
var textbox2=0;
function getField()
{
var newtextbox1="name1"+countbox;
var newtextbox2="name2"+countbox;
document.getElementById('renderDiv').innerHTML+='<br/><input type="text" id="'+newtextbox1+'" name="'+newtextbox1+'" /><br/><input type="text" id="'+newtextbox2+'" name="'+newtextbox2+'" />';
document.getElementById('renderDiv').innerHTML+='<br/><input type="hidden" id="hiddentextField" name="hiddentextField" value="'+countbox+'" />';
countbox +=1;

}
</script>

私のhtmlコードは

<input type="button" id="button1" onclick=getField();/>
<div id="renderDiv">




</div>

この div 内で 2 つの textfield が隠しフィールドと共に生成されます。送信中にコントローラーで textfield の値を取得できず、textfield のカウントも取得されません。 $hiddenfield=$this->input->post( 'hiddentextField');

4

2 に答える 2

0

私は前に同じ問題を抱えていました。私がしたことは、それらのテキストボックスをテーブル内に挿入することです。

次に、jQuery find を使用します

var _content = '';
var _findcontent = $("#tableSample");
_findcontent.find("tr").each(function(){
  $(this).find("td").each(function(){
    $(this).find("input").each(function(){
      _content += $(this).val+'~'+$(this).attr("id")+'|';
    });
  });
});

次に、ajax を使用して PHP に渡します。

$.post("<?php echo site_url('controller_name/method_name'); ?>",
{
    content : _content
}
,function( _data){
jAlert("alert",_data,"alert");
});

PHP では、explode を使用して目的の値を取得できます。

$content_from_page = $this->input->post("content");

$explode_string = array();
$explode_string = explode("|",$content_from_page );
$explode_arr = array()
for($x=0;$x<count($explode_string)-1;$x++)
{
  $explode_arr[] = explode("~",$explode_string[$x];
}

次に、print_r($explode_arr); チェックする

*注意: このアプローチの唯一の問題は、テキスト ボックスに挿入される文字が ~ または | の場合、区切り文字として使用されるためです。

于 2013-08-12T00:54:42.900 に答える