我正在尝试仅在用户在确认对话框中输入yes时才将数据插入mysql,但即使用户输入no,数据也会始终插入到mysql中。这是我的代码..
<?php if (mysqli_num_rows($data_query) >= 1) { ?>
<script>
var txt;
var r = confirm('Duplicate Data! Click OK to Add & Cancel to Cancel it')
if (r == true) {
<?php
$query="INSERT INTO video_data(date) " ;
$query .= "VALUES('{$date}')";
$create_video_query=mysqli_query($connection,$query);
if (!$create_video_query) {
die("failed".mysqli_error());
} else {
$success = "Video added succesfully";
}
?>
}
</script>
<?php } ?>
答案 0 :(得分:0)
在没有php的情况下测试你的代码。
我测试了以下代码(删除了php)并且它可以工作:
<html>
<body>
<script>
var txt;
var r = confirm('Duplicate Data! Click OK to Add & Cancel to Cancel it');
if(r==true){
alert('Clicked OK: Run insert sql');
} else {
alert('Clicked Cancel: Do nothing');
}
</script>
</body>
</html>
答案 1 :(得分:0)
您不能将服务器端(PHP)和客户端(JavaScript)混合在一起以实时进行交互。你必须使用AJAX,或者你必须提交一个表单(一个内置在HTML中或由javascript构建)。这只是一个基本的例子:
<?php
# Checks to see if the form has been submitted
if(isset($_POST['add'])) {
$query="INSERT INTO video_data(date) " ;
$query .= "VALUES('{$date}')";
$create_video_query=mysqli_query($connection,$query);
if(!$create_video_query) {
die("failed".mysqli_error());
}
else {
$success = "Video added succesfully";
}
}
?>
<?php
# I don't know what this is based on (the query) so I don't know if it's required.
# I just left it
if(mysqli_num_rows($data_query) >= 1) { ?>
<script>
var txt;
var r = confirm('Duplicate Data! Click OK to Add & Cancel to Cancel it');
if(r !== false){
// Assumes there is a form to submit and submits it
form.submit();
}
</script>
<?php } ?>