Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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 Ajax请求错误404_Javascript_Php_Ajax - Fatal编程技术网

Javascript Ajax请求错误404

Javascript Ajax请求错误404,javascript,php,ajax,Javascript,Php,Ajax,再次问候并提前感谢。首先让我向您展示我试图解决的代码和问题: <span class='dropdown' id='status'> <?php switch ($status) { case "unassigned": echo "<button type='button' data-toggle='dropdown' id='edit'

再次问候并提前感谢。首先让我向您展示我试图解决的代码和问题:

<span class='dropdown' id='status'>
              <?php
                switch ($status) {
                  case "unassigned":
                  echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $status . "<span class='caret'></span></button>";
                  echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
                  echo "<li><a class='editStatus' href='pending'>Pending</a></li>";
                  echo "</ul>";
                  break;

                  case "pending":
                  echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $status . "<span class='caret'></span></button>";
                  echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
                  echo "<li><a class='editStatus' href='attending'>Attending</a></li>";
                  echo "<li><a class='editStatus' href='followup'>Follow Up</a></li>";
                  echo "<li><a class='editStatus' href='closed'>Closed</a></li>";
                  echo "</ul>";
                  break;

                  case "attending":
                  echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $status . "<span class='caret'></span></button>";
                  echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
                  echo "<li><a class='editStatus' href='pending'>Pending</a></li>";
                  echo "<li><a class='editStatus' href='followup'>Follow Up</a></li>";
                  echo "<li><a class='editStatus' href='closed'>Closed</a></li>";
                  echo "</ul>";
                  break;

                  case "followup":
                  echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $status . "<span class='caret'></span></button>";
                  echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
                  echo "<li><a class='editStatus' href='closed'>Closed</a></li>";
                  echo "</ul>";
                  break;

                  case "closed":
                  echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $status . "<span class='caret'></span></button>";
                  echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
                  echo "<li><a class='editStatus' href='pending'>Pending</a></li>";
                  echo "<li><a class='editStatus' href='attending'>Attending</a></li>";
                  echo "<li><a class='editStatus' href='followup'>Follow Up</a></li>";
                  echo "</ul>";
                  break;
                }
              ?>        
                  </span> 
我的php脚本中包含了这个范围,其中包括一个下拉按钮,其中的选项表示此页面中显示的消息的不同状态,并通过ajax将此信息发送给另一个php脚本

<script>
var phpvar1 = "<?php echo $frompost_id_sanitized; ?>";
var phpvar = "<?php echo $status; ?>";

$('a.editStatus').click(function(event) {
event.preventDefault();
    var statusJs = $(this).attr("href");

    alert('Change Status of ticket to: ' + statusJs)
    $.post('ajaxChangeStatus.php', {status: statusJs, id: phpvar1, initialStatus: phpvar}, function(data) {
        $('#status').html(data)
    });
});
最后,第二个php脚本向db添加数据,并将一些html发送回第一个php脚本,如下所示,一些代码被省略

switch ($frompost_status_sanitized) {
    case "pending":
    echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $frompost_status_sanitized . "&nbsp;<span class='caret'></span></button>";
    echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
    echo "<li><a class='editStatus' href='attending'>Attending</a></li>";
    echo "<li><a class='editStatus' href='followup'>Follow Up</a></li>";
    echo "<li><a class='editStatus' href='closed'>Closed</a></li>";
    echo "</ul>";
    break;

    case "attending":
    echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $frompost_status_sanitized . "&nbsp;<span class='caret'></span></button>";
    echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
    echo "<li><a class='editStatus' href='pending'>Pending</a></li>";
    echo "<li><a class='editStatus' href='followup'>Follow Up</a></li>";
    echo "<li><a class='editStatus' href='closed'>Closed</a></li>";
    echo "</ul>";
    break;

    case "followup":
    echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $frompost_status_sanitized . "&nbsp;<span class='caret'></span></button>";
    echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
    echo "<li><a class='editStatus' href='closed'>Closed</a></li>";
    echo "</ul>";
    break;

    case "closed":
    echo "<button type='button'  data-toggle='dropdown' id='edit' aria-haspopup='true' aria-expanded='true' class='btn btn-danger dropdown-toggle'> Status: " . $frompost_status_sanitized . "&nbsp;<span class='caret'></span></button>";
    echo "<ul class='dropdown-menu'   aria-labelledby='edit'>";
    echo "<li><a class='editStatus' href='pending'>Pending</a></li>";
    echo "<li><a class='editStatus' href='attending'>Attending</a></li>";
    echo "<li><a class='editStatus' href='followup'>Follow Up</a></li>";
    echo "</ul>";
    break;
}
一切似乎都正常:

我的想法是,在第一个php脚本中有一个下拉按钮,其中的选项表示所显示消息的状态。当选择一个选项g时,状态已更改单击事件我通过ajax发送给第二个php脚本选项已选择新状态,然后执行一些操作,并将带有不同操作的相应html下拉按钮返回给第一个php脚本

问题 如果然后我选择另一个选项,例如,如果我尝试在不重新加载页面的情况下再次更改状态,则会出现404错误,因为当单击该选项而不是触发click事件,然后触发event.preventdefault……时,应用程序会读取href属性[用于向第二个php脚本发送数据,如下所示:var statusJs=$this.attrref;]并尝试加载导致404错误的页面

通常,js脚本应该从href属性读取值,阻止导致404的默认actioneg加载页面,将数据发送到第二个php脚本,并用返回的html替换span contants


怎么了?

授权是解决方案


非常感谢

感谢chris的帮助,以后在将codeYou绑定的事件处理程序发布到第一组editStatus元素时,我会更加小心,但不会发布到后面附加的元素。这是使用事件委派的好情况。研究.on方法。