我有一个表单,最后使用以下输入:
<input type="hidden" id="ct_count" name="ct_count" value=""/>
表格的初始化是:
<form action="email_submission.php" method="post" id="form1" onsubmit="mySubmit();">
mySubmit功能是:
function mySubmit() {
document.getElementById('ct_count').value = ct;
document.getElementById("form1").submit();
}
当我点击提交时,我想将ct的值(它是页面上的变量计数)传递给email_submission.php并将其存储在会话变量中。会话变量在每次提交时都返回空白,我不确定所使用的“ct”变量的值是否在隐藏字段上传递。
有人能够找到我错的地方吗?通过这个已经存储了正确的变量,所以就我所知,它不是我的会话设置。
tldr:采用javascript变量计数并通过表单提交给php的正确方法是什么?
编辑: 这是添加字段的代码。 变量“ct”的intiial循环
function new_link()
{
ct++;
<?php $ct = $ct + 1; ?>
document.getElementById("sec4_lender").setAttribute('name', 'sec4_lender_<?php echo $ct;?>');
document.getElementById("sec4_balance").setAttribute('name', 'sec4_balance_<?php echo $ct;?>');
document.getElementById("sec4_termdate").setAttribute('name', 'sec4_lender_<?php echo $ct;?>');
document.getElementById("sec4_security").setAttribute('name', 'sec4_security_<?php echo $ct;?>');
document.getElementById("sec4_description").setAttribute('name', 'sec4_description_<?php echo $ct;?>');
document.getElementById("sec4_status").setAttribute('name', 'sec4_status_<?php echo $ct;?>');
document.getElementById("sec4_repayment").setAttribute('name', 'sec4_repayment_<?php echo $ct;?>');
document.getElementById("sec4_repayment2").setAttribute('name', 'sec4_repayment_2_<?php echo $ct;?>');
var div1 = document.createElement('tr');
div1.id = 'sect4busloan_div_'+ct+'';
// link to delete extended form elements
var delLink = '<tr style="text-align:right;margin-right:65px"><a href="javascript:delIt('+ ct +')">Del</a></tr>';
div1.innerHTML = document.getElementById('newlinktpl').innerHTML + delLink;
document.getElementById('newlink').appendChild(div1);
}
// function to delete the newly added set of elements
function delIt(eleId)
{
d = document;
var ele = d.getElementById(eleId);
var parentEle = d.getElementById('newlink');
parentEle.removeChild(parentEle.childNodes[eleId]);
var newct = ct - 1;
ct = newct;
<?php $ct = $ct - 1;?>
}
答案 0 :(得分:0)
您正在获取输入值并始终将其设置为ct
-
document.getElementById('ct_count').value = ct;
如果你这样做,你应该在控制台中收到关于ct
的警告或错误。你应该做的是将一个变量设置为输入的值 -
var ct = document.getElementById('ct_count').value;
您似乎也从未设置隐藏字段的值,因此在此处发布的示例ct
的值始终为空。
答案 1 :(得分:0)
事实证明,虽然进行了错误测试,但我已将该单个会话移出了我的脚本的条件。因此,对于除了第一个i之外的每个页面,它都在请求一个空白变量。
最好的白痴。非常感谢大家帮忙解决这个问题。