【问题标题】:alert inside ajax callajax调用中的警报
【发布时间】:2014-01-02 15:52:39
【问题描述】:

我正在使用 ajax 调用来调用 php 函数,其中我有一个警报。 但是警报不会触发,而是将 javascript 的代码返回给我(在控制台内看到)。 如何在 ajax 调用中使用 laert?

请不要回答使用功能成功检查我的数据等。因为我需要在通话中提醒。

这是我的代码简化:

$('.form-booking').each(function(){
        $form = $(this);
        $.ajax({
            async: false,
            type: 'POST',
            url: someurl.php'',
            data: $form.serialize(),
            success: function (msg) {
                console.log(msg);
            }
        });
    });

someurl.php中的php部分

<?php
....
//some code
....
if($some_condition){
          ?>
          <script>
          if (confirm('Do you wanna go over?')) {
              //other code
          } else {
              window.location.href = 'otherurl.php';
          }
          </script>
          <?php
}
?>

如果条件为真,此代码不会显示警报,但我在标签Net 的控制台内看到响应和javascript 中脚本的代码

【问题讨论】:

  • 为什么不能使用成功回调?
  • 你需要运行你得到的 javascript.. eval 是一个选项,但它很危险
  • 因为我需要在我的代码中调用其他函数,这意味着如果我必须使用成功函数,我必须重构所有代码。如果我无法进行重构,但如果可能的话,我想知道@VincentRamdhanie
  • 对我的目的来说不是一个好的解决方案@PiotrKaluza
  • 为了能够运行 javascript,您至少需要将其添加到 html 中。

标签: javascript php jquery ajax


【解决方案1】:
<php

// some code

echo $some_condition

然后在你的成功函数的主文件中:

      function(data){
      if(data){
      if (confirm('Do you wanna go over?')) {
          //other code
      } else {
          window.location.href = 'otherurl.php';
      }
      }

【讨论】:

  • 我已经在问题中指定了我不想使用成功功能
  • 您不会从 someurl.php 中获取 javascript,您总是可以将 someurl.php 分成 2 个文件并根据用户点击的内容使用另一个 ajax 调用。这将使您不必重构....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
相关资源
最近更新 更多