我在php中有两个页面。第一页如下:
<?php
// --- please consider that my form is inside a while statement...
<form action='deletepost.php' method='post' >
<input type='hidden' name='var' value='$comment_id;'>
<input type='submit' value='delete' >
</form>
?>
和页面deletepost.php如下:
<?php
$comment = mysql_real_escape_string($_POST['var']);
echo" $comment ";
// --- then starts successfully the delete process I have created...
?>
因此,第一页包含一个表单按钮删除,当我按下它时,成功传递我想要页面deletepost.php的值(我使用echo来查看它,你可以看到)。 我决定在第一页中为我的表单使用javascript灯箱。我已将代码更改为:
<?php
<a href = javascript:void(0) onclick = document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'><h2><font color=green size=3>Delete All</font></h2></a>
<div id=light class=white_content>
<form action='deletepost.php' method='post' >
<input type='hidden' name='var' value='$comment_id'>
<input type='submit' value='delete' onClick=submit(); >
</form>
<a href=javascript:void(0) onclick=document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'><button style='margin-left:250px; width:95px;'>Cancel</button></a>
</div>
<div id=fade class=black_overlay></div>
问题是在使用javascript后,值不会传递给deletepost.php。任何想法可能会发生这种情况?
答案 0 :(得分:1)
我认为在提交按钮上使用javascript没有意义。您可以在<a>
或<button>
上执行,您应该参考表单名称。
<form name='form1' action='deletepost.php' method='post'>
...
<button onclick='document.form1.submit()'>delete</button>
仅调用submit()
将无效,因为没有这样的内置单独方法。您可以在包装器方法
function submit() {
document.form1.submit();
}
以下是我的测试:
test1.php:
<?php $comment_id = 1 ?>
<?php while($comment_id < 10): ?>
<a href="javascript:void(0)" onclick="document.getElementById('light<?=$comment_id;?>').style.display='block';document.getElementById('fade<?=$comment_id;?>').style.display='block'"><h2><font color=green size=3>Delete All</font></h2></a>
<div id="light<?=$comment_id;?>" class="white_content" style="display: none">
<form action="test2.php" method="post" name="form1">
<input type="hidden" name="var" value="<?=$comment_id;?>" />
<button onClick="document.form1.submit();">Delete</button>
</form>
<a href="javascript:void(0)" onclick="document.getElementById('light<?=$comment_id;?>').style.display='none';document.getElementById('fade<?=$comment_id;?>').style.display='none'"><button style="margin-left:250px; width:95px;">Cancel</button></a>
</div>
<div id=fade class=black_overlay></div>
<?php $comment_id++; ?>
<?php endwhile;?>
它生成了9个评论灯箱。在第五个点击Delete all
时,它会展开按钮Delete
。然后我点击按钮,它将我重定向到test2.php
我在哪里
<?php var_dump($_POST); ?>
网页中的输出是:
array (size=1)
'var' => string '5' (length=1)
答案 1 :(得分:0)
我认为您的提交输入不需要onClick
属性。特别是如果你实际上没有在JS中的任何地方定义submit
方法。设置该属性可能足以停止表单的默认提交行为,并将阻止您的PHP运行。