Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在php页面中确认选择_Javascript_Jquery_Ajax - Fatal编程技术网

使用javascript在php页面中确认选择

使用javascript在php页面中确认选择,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图确认删除了某些内容,但似乎无法使其正常工作 当按下“deleteReply”按钮时,我收到一条警告消息,但据我所知,没有其他任何事情发生。我试图简单地回显发布的变量,但它似乎不起作用 <input type="button" id="deleteSomething" value="Delete" /> <script type="text/javascript"> $(document).ready(function(){ $('#deleteSomethin

我试图确认删除了某些内容,但似乎无法使其正常工作

当按下“deleteReply”按钮时,我收到一条警告消息,但据我所知,没有其他任何事情发生。我试图简单地回显发布的变量,但它似乎不起作用

<input type="button" id="deleteSomething" value="Delete" />
<script type="text/javascript">
$(document).ready(function(){
   $('#deleteSomething').click(function() {
      if (!confirm("Are you sure?"))
        return false;
    $.post('deleteProcessing.php', "replyID=" + replyID, function(response) {
        alert(response); 
    });
  });
});
</script>

//在这里,您将单击事件附加到带有id buttonYes的按钮Yes
$(“#删除某些内容”)。单击(函数(){
$('#yesno').css('display','block');
});
$('#按钮否')。单击(函数(){
$('yesno').css('display','none');
});
$(“#按钮项”)。单击(函数(){
$.ajax({
发送前:函数(e){
//调用AJAX之前要处理的代码
},
url:“pathToPHPFile.php”,
数据类型:“json”,
类型:“POST”,
数据:{
参数:“是”,
},
成功:功能(m){
控制台日志(m);
警报(m.text);
},
错误:函数(e){
log(“出错了…”“+e.message);
},
});/*结束ajax*/
e、 预防默认值();
});
你为什么要这么做

if(isset($_POST['deleteReply'])){
?>
在javascript函数之前?您是否希望基于
$\u POST['deleteReply']
var触发javascript代码

您必须记住,php是在服务器端处理的,并输出一个HTML页面。您的javascript代码将仅在所有php运行之后在客户端中运行

更优雅的解决方案是在发送AJAX请求之前请求确认

而且,您的ajax调用似乎并没有达到您所期望的效果。您正在手动设置2个参数以发送到PHP,如果您在服务器端进行确认,这些参数将没有任何用处

参数应该类似于要删除的回复的
回复ID
,并将请求发送到另一个php文件进行处理

我建议你像Marian Zburlea为你做的那样重写你的代码

编辑

好的,如果您想要一个简单的确认窗口,请尝试以下操作:

<input type="button" id="deleteSomething" value="Delete" />

<script type="text/javascript">

$(document).ready(function(){
    $('#deleteSomething').click(function() {
        if (!confirm("Are you sure?"))
            return false;

        $.post('delete.php', "replyID=" + replyID, function(response) {
            alert(response); 
        });
    });
});
</script>
通过这种方式,
$replyID
将存储在页面的HTML中,该HTML将被传递到
deleteSomething(replyID)
函数,您现在必须定义该函数(最好是在JQuery库之后的文档的
标题中):


函数deleteSomething(replyID)
{
如果(!确认(“您确定吗?”))
返回false;
$.post('deleteProcessing.php',“replyID=“+replyID,function(response)){
警报(响应);
});
}

请注意,我从按钮中删除了
ID
,以不生成重复ID,并且不再需要它们,因为我在
onclick
事件中添加了函数调用,而不是像以前那样将匿名函数绑定到它们的ID。

感谢您的提示,但我仍然没有收到确认信息。仔细想想,它到底在你提供的代码中的什么地方?我看到了你的更新,但我仍然没有看到一个确认/警报框出现。你能在你的代码中注释触发确认框的那一行吗,因为我没有看到它。我不熟悉JSON,所以可能我不明白它在做什么。我非常感谢您的帮助,但我仍然没有看到确认/警报框出现。在Fabrico指出javascript是客户端之后,我删除了isset($_POST['deleteReply'])!无论如何,为什么这个确认框不会出现?谢谢你的帮助Marian。我真的很感谢你的意见。我将对JSON做更多的研究。如上所述,我是Javascript/Jquery新手,所以我还有一些阅读工作要做。再次感谢。天哪,我真不敢相信我没有注意到。这是漫长的一天。是的,我本想把它作为一个评论而不是一个答案发布,但是对于一个评论来说有点太长了。祝你好运。:)我尝试了玛丽安的建议,但没有任何改变。我仍然没有收到确认消息,也看不到它在他的代码中的位置。请尝试添加他添加的HTML代码。单击
#delete something
按钮时,它将显示
#yesno
div。最好对他/她的答案发表评论。编辑:确保在html的那部分之后添加JS代码,或者将其包装在
$(document.ready()
事件中。我这样做了。我用我那一整块的$_POST['deleteReply']换了他所有的东西。
if(isset($_POST['deleteReply'])){
?>
<input type="button" id="deleteSomething" value="Delete" />

<script type="text/javascript">

$(document).ready(function(){
    $('#deleteSomething').click(function() {
        if (!confirm("Are you sure?"))
            return false;

        $.post('delete.php', "replyID=" + replyID, function(response) {
            alert(response); 
        });
    });
});
</script>
echo '<input type="button" value="Delete" onclick="deleteSomething(\'' . $replyID . '\')" />';
<script type="text/javascript">

function deleteSomething(replyID)
{
    if (!confirm("Are you sure?"))
        return false;
    $.post('deleteProcessing.php', "replyID=" + replyID, function(response) {
        alert(response); 
    });
}
</script>