我有一个表单,当单击一个按钮时,通过java脚本动态生成两个字段。每次单击按钮时,两个文本字段将一次又一次生成。现在我已经生成了文本字段的计数在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中,两个文本字段与隐藏字段一起生成 我在提交时没有得到控制器中textfield的值,我没有得到textfield.i的计数。我试过像$ hiddenfield = $ this-&gt; input-&gt; post('hiddentextField');
答案 0 :(得分:0)
您必须发布变量以便将其传递给服务器
<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;
window.location.href = "index.php?name=" + countbox-1;
//change index.php to your page name
}
</script>
然后在同一页面
<?php
$hiddenfield=$_GET["name"];
?>
答案 1 :(得分:0)
之前我遇到过同样的问题,我做的是在表格中插入那些文本框,比方说,tableSample
然后我使用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);检查
*注意:这种方法的唯一问题是,如果插入文本框的字符是〜或|,则coz是使用的分隔符。