首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绕过jQuery代码

问绕过jQuery代码
EN

Stack Overflow用户
提问于 2013-05-23 18:44:14
回答 1查看 248关注 0票数 0

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

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

发布于 2013-05-23 18:53:34

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

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

confirm.php

代码语言:javascript
复制
Hey, are you sure you want to save the data?
<a href="save.php">Yes, I'm sure</a>

save.php

代码语言:javascript
复制
INSERT INTO 'blablabla' VALUES bla bla bla bla bla

当然,你并不一定要把它分成两个脚本。

但是这个想法是你必须将这两个动作分开,因为你不能用PHP同时做确认和保存。

还有更多的选项:

  1. 使用ajax在用户确认操作后运行“保存脚本”
  2. 使用javascript防止“保存脚本”在未经确认的情况下运行,如下所示:
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16711874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档