如何在codeigniter中将javascript值传递给php

时间:2013-08-10 15:51:56

标签: php javascript codeigniter

我有一个表单,当单击一个按钮时,通过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');

2 个答案:

答案 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是使用的分隔符。