繁体   English   中英

如何在Codeigniter中将Java脚本值传递给php

[英]how to pass java script value to php in 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内,生成了两个文本字段以及隐藏字段,我在提交时未获取控制器中文本字段的值,也未获取文本字段的计数。我尝试像$ hiddenfield = $ this-> input-> post( 'hiddentextField');

您将必须发布变量才能将其传递到服务器

 <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"];
?>

我之前遇到过同样的问题,我所做的是将那些文本框插入表格中,可以说,tableSample

然后我用jQuery查找

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM