PHP 绕过 jQuery 代码

标签 php javascript

我使用此代码将我的联系人信息保存到MySQL数据库中,并应用JQuery确认功能来确认数据提交,但是当确认对话框打开时PHP脚本无法停止,或者Php绕过JQuery确认代码并将数据提交到数据库中,关于这个问题的任何想法。

<?php
//Database connection.
include'connect.php';
if(isset($_POST['name'])&&isset($_POST['email'])&&isset($_POST['contact'])){
$name = $_POST['name'];
$email = $_POST['email'];
$contact = $_POST['contact'];

if(empty($name)&&empty($email)&&empty($contact)){
echo'
  <script>
    $(document).ready(function(){
        alert("Please fill all fields.");
    });
  </script>
';
 }else{
  if($sql = mysql_query("INSERT INTO contact_list VALUES ('', '".mysql_real_escape_string($name)."', '".mysql_real_escape_string($email)."', '".mysql_real_escape_string($contact)."')")){
    echo'
      <script>
        $(document).ready(function(){
           confirm("Are you sure to Saved Contact?");
        });
      </script>
    ';
  }else{
    echo'
      <script>
        $(document).ready(function(){
            alert("Something is wrong, Please check");
        });
      </script>
        ';
     }
 }
 }
 ?>

<html>
   <form action="#" method="POST">
      Full name:<input type="text" name="name">
      Email:<input type="text" name="email">
      Contact:<input type="text" name="contact">
   </form>
</html>

最佳答案

PHP由服务器执行,而javascript由客户端执行。并且你希望服务器“等待”或“停止执行”,直到客户端执行某些js代码。嗯,这是不可能的。

您必须将 PHP 代码拆分为两个不同的 PHP 脚本:一个用于确认,另一个用于保存数据。例如,使用伪代码:

confirm.php

Hey, are you sure you want to save the data?
<a href="save.php">Yes, I'm sure</a>

保存.php

INSERT INTO 'blablabla' VALUES bla bla bla bla bla

当然,您不必将其拆分为两个脚本。您可以再添加一个 $_POST 参数,例如“confirmed=true/false”,而不是两个脚本,只需一个多一个 if () {} else {} block 。

但想法是您必须将这两个操作分开,因为您无法使用 PHP 同时进行确认和保存。

<小时/>

还有更多选项:

  1. 用户确认操作后,使用ajax运行“保存脚本”

  2. 使用 javascript 防止“保存脚本”在未经确认的情况下运行,例如:<input type="submit" onclick="return confirm('Sure?');" value="Save"/>

关于PHP 绕过 jQuery 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16711874/

相关文章:

javascript - 如何将 font-awesome svg 图标导出为 base64 url​​?

javascript - 使用 PHP 或 JS 对 @media 查询中的 html 元素进行优先级排序

javascript - Vue.js 禁用动态绑定(bind)?

PHP 使用 'eval' 作为函数(获取返回值)

php - 将由php/html导出的表格类型结果导出到Excel

javascript - Node.js 客户端与服务器 - 相同的代码不同的结果

javascript - 我可以在 Android 电视应用程序中使用 React Native 吗?

javascript - 创建了我自己的华氏温度到摄氏度转换器。但为什么它不起作用?

php - 如何正确使用 Laravel 和 SQL Server 而不是 MySQL?

php - 如何将发布到我网站的评论格式化为彼此分开?