2015-08-08 93 views
-1

代码里面我有一个JavaScript确认框,我有一些MySQL的插入一些条件要执行查询代码。这就是我的代码的样子:如何执行JavaScript确认框

<?php 
$id = $_POST['id']; 
$name= $_POST['name']; 
$query = mysql_query("select * from table where id='$id'"); 
$count = mysql_num_rows($query); 

if($count!=0) 
{ 
?> 
    <script type="text/javascript"> 
     if (confirm("This seems to be Duplicate. Do you want to continue ?") == true) 
     { 
      //Execute/Insert into table as how it is given below 
     } 
     else 
     { 
      //Dont execute/insert into table but close the window 
     } 
    </script> 
<?php 
} 
else 
{ 
    $queryinsert = mysql_query("INSERT INTO table(id,name) VALUES('$id','$name')"); 
} 
?> 
+1

我想你需要做一些关于AJAX的研究,可能是JQuery – RiggsFolly

+0

你能分享更多的代码吗?你如何得到这个片段?你会需要调用Ajax调用PHP脚本确认后,或者你可以做一个location.href =“myscript.php ignoreDuplicate = 1?”;然后使用它像'如果($计数!= 0 &&(!isset($ _ GET [ 'ignoreDuplicate'] || $ _GET [ 'ignoreDuplicate'] == 0))){...}' 这的如果你不使用任何框架,当然应该这样做。 –

回答

2

您不能执行JavaScript的内部MySQL或PHP命令,你可以做什么,而不是是让一个PHP函数你可以通过Ajax调用。最好的办法是通过使用jQueryredirecting的页面与URL您的PHP函数。

<script type="text/javascript"> 
    if (confirm("This seems to be Duplicate. Do you want to continue ?")) 
    { 
     $.ajax({ 
      url: 'your_path_to_php_function.php', 
      type: 'POST', // Or any HTTP method you like 
      data: {data: 'any_external_data'} 
     }) 
     .done(function(data) { 
      // do_something() 
     }); 
    } 
    else 
    { 
     window.location = 'your_url?yourspecialtag=true' 
    } 
</script> 
0

您正在混合服务器端和客户端脚本。这不起作用。你必须使用AJAX,这是异步的服务器 - 客户端/客户端 - 服务器的请求。我推荐jQuery,它是可以轻松处理很多事情的JavaScript,包括AJAX。

运行这一点,如果用户确认操作

$.post("phpscript.php", {action: true}) 

php文件:

if ($_POST['action'] === TRUE) { 
    <your code here> 
}