duancheng7743 2013-07-20 10:13
浏览 14
已采纳

如何使用onclick以形式发布变量[关闭]

<form action='#' method='post' onclick=' ConfirmChoice(); 
return false;' style='display:inline-block;'>
<input type='hidden' name='delete_dish' value='" . $row['dishname'] . "'>
<input type='image' src='images/delete2.png' alt='Submit' name='delete2' value='delete2'>
</form>

Everytime I $_POST on another file, it says Notice: Undefined index: delete_dish

But, when I remove onclick=' ConfirmChoice(); return false; and put FILENAME.php instead of #, it works.

  • 写回答

2条回答 默认 最新

  • duanqi6007 2013-07-20 10:31
    关注

    You aren't making a POST request at all

    From one of your comments (confirm message changed for brevity):

    <script language="javascript"> 
        <!-- Confirm Dialog Box for deletion --> 
        function ConfirmChoice() { 
            answer = confirm("Are you sure?")
            if (answer !=0) { 
                location = "recipe7.php" 
            }
        } 
    </script>
    

    Assuming that location means document.location: This will mean given how it's used in the question, that as soon as a user clicks on anything in the form only one of two things will happen:

    • Nothing
    • User is redirected to recipe7.php

    Working solution

    <script language="javascript"> 
        function ConfirmChoice() { 
            return confirm("Are you sure?");
        }
    </script>
    <form action='recipe7.php' method='post' onsubmit='return ConfirmChoice();' >
        <input type='hidden' name='delete_dish' value='" . $row['dishname'] . "'>
        <input type='image' src='images/delete2.png' alt='Submit' name='delete2' value='delete2'>
    </form>
    

    The two differences are:

    • Make the form submit to where it's supposed to submit
    • Use onsubmit to prompt the user, not on click.

    If a form onsubmit callback returns falsey - submitting the form is aborted.

    Additional points

    Comments in javascript

    are of the form:

    // this is a comment
    /* this is a 
    multiline
    comment */
    

    Using html comments (<!-- asdf -->) in a javascript block is not valid.

    Make things work without js by default.

    Writing functionality that only works with js enabled when it's not necessary - just adds complexity. Instead make it work without js - and then add whatever js functionality you want (the minimum) to it afterwards.

    Sticking to this principle will have two concequences:

    • Js logic is simpler (because there's less of it)
    • If there's a js error things still work.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。