所以这个功能似乎让我感到困惑。
echo"
<td style='font-size:12px;width:150px;'><div style=\"overflow-y:auto; max-height:250px; width:200px;\">
{$row['Notes']} </div><br /><center><br />
<button onclick=\"myFunction('{$row['ID']}','$rowID')\">Add Note</button>
<form action=\"http://calls.fantomworks.com/functions/notes.php\" id='notesForm' name='notesForm' method='post'>
<input type='hidden' id='notesID' name='notesID' />
<input type='hidden' id='rowID' name='rowID'/>
<input type='hidden' id='notes' name='notes' />
</form>
</center>";
调用此javascript
<script language="JavaScript" type="text/javascript">
function myFunction(ID,rowID)
{
var x;
var ID = ID;
var rowID = rowID;
var note = prompt("Customer Note","Write your customer note here...");
if (note != null) {
document.getElementById("notes").value = note;
document.getElementById("notesID").value = ID;
document.getElementById("rowID").value = rowID;
document.getElementById("notesForm").submit();
}
else{
return false;
}
}
</script>
并最终在这个php页面
$notesID = $_POST['notesID'];
$rowID = $_POST['rowID'];
$note = $_POST['notes'];
//Redirect to browser
header("Location: ./index.php#row_$rowID");
唯一的问题是rowID似乎没有通过并生成像“index.php#row _”这样的链接
我无法理解为什么rowID没有通过,但NotesID和注释是。 从调试中可以看出,值就在那里。
感谢您的任何想法或建议!!
答案 0 :(得分:2)
"http://calls.fantomworks.com/index.php"上的脚本正在由您的javascript函数发布 - 因此您寻找的变量应该通过$_POST
全局可用。
尝试更改
header("Location: ./index.php#row_$rowID");
要
header("Location: ./index.php#row_{$_POST['rowID']}");
顺便提一下,你在javascript函数中定义的三个变量似乎是多余的,可以通过外观来消除,即: -
var x;
var ID = ID;
var rowID = rowID;
自发布原始文件后仔细查看(并且没有注意到@OP发布的vars的分配) - 页面上有数百个表单 - 从行到行使用相同的IDS。恕我直言 - 这绝对不是前进的方式 - 当您通过单击按钮动态设置值时,您可以只有一个“添加注释”表单。看起来相关的变量(rowID等)似乎被设置并分配给调用javascript的按钮,所以理论上你可以只有一个用于发布到“notes.php”的表单,但每行都有这个按钮。
页面加载速度很慢 - 部分原因是存在数百个复杂的表格行布局,而且每个按钮的形状都是表格 - 然后有些图像本身就是全尺寸但可能真的是(并且应该是)缩略图。如果每个按钮动态分配上述问题中的变量,那么表单的数量可以大大减少。