【问题标题】:Execute PHP function with Javascript onClick without page refresh使用Javascript onClick执行PHP函数而不刷新页面
【发布时间】:2019-02-19 20:16:59
【问题描述】:

我的研究将我指向 Ajax 和/或 JQuery,但我想问一下以确保我理解并朝着正确的方向前进。

我一直在寻找使用 javascript onclick 函数来创建一个弹出窗口(警报),要求确认我要继续并显示我将要进行的更改。

我希望我可以使用 PHP $_POST 或 GET 来响应弹出/警报窗口中的更改。但是,如果没有页面刷新,我似乎无法执行此操作,但需要确认?我应该寻找 Ajax 来做到这一点吗?任何想法/建议都可能让我领先一步,因为 php/ajax 对我来说有点陌生。

示例代码:

<script>     
function clicked() {
    if (confirm('Do you want to submit? <?php if(isset($_POST['city'])){$city = $_POST['city'];echo $city;}?>')) 
    {
        yourformelement.submit();
    } else {
        return false;
    }
}
</script>
</head>
<form action="output.php" method="post">
  <input name="city">

<input type="submit" onclick="clicked();" value="Button" />
 </form>

</html>

【问题讨论】:

  • $.ajax 是你最好的朋友。提交表单将刷新您的页面,只需执行异步请求即可。
  • 不可能。 @kemicofa 答案将是您的最佳选择。
  • 谢谢。我以为是这样。我将开始深入研究 Ajax。

标签: javascript php jquery


【解决方案1】:

提交前可以用jQuery获取输入值:

<form action="output.php" method="post" id="form">
    <input name="city" id="city_input">
    <input type="submit" value="Button" />
</form>
<script>     
    $('#form').submit(function(e) {
        e.preventDefault();
        let cityInputVal = $('#city_input').val();
        if (confirm('Do you want to submit ' + cityInputVal + '?')) 
        {
            this.submit();
        } else {
            return false;
        }
    });
</script>

preventDefault() 函数停止表单提交,因此页面刷新。

【讨论】:

  • 感谢您的示例。我能够使用稍微不同的 JQuery/Ajax 代码来复制它,但这个例子是正确的。
猜你喜欢
  • 2020-09-30
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 2018-01-05
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多