0

我一直在寻找答案,但我仍然不知道该怎么做。老实说,我在编程方面并不擅长,而且我还在学习中。

下面是我的代码:

$.ajax({
type: "POST",
url: "process.php",
data: {
postid: post_id
},
success: function(){
document.getElementById('processed').innerHTML = post_id;
...

我对此没有问题,只是我想在 process.php 上得到错误(如果有的话)。

我想得到错误的 process.php 代码:

  if($result){
      while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
            $m = $row['processedID'];
            $id = trim($_POST ['postid']);
        try {
            ..something...
      }
       catch (APIHandle $e) {
            $output .= "<p>'". $row['name'] . "' processing failed</p>";
         }
}
}

我想得到这条线:

 $output .= "<p>'". $row['name'] . "' processing failed</p>";

并将其作为错误显示在我的第一个 php 文件中,并将其作为文本输出。例如,用户单击一个按钮,它会检查输入并输出错误(如果有任何使用这些代码)。

谢谢您的帮助!

编辑! 我现在正在使用 andy 提供的代码,因为它可以处理错误,并且可以选择如果发生错误该怎么办。问题是我不知道如何使用文本字段/表单项来处理它。这是我更新的代码:

    var textfieldvalue = $("#text").val();
    var post_id = textfieldvalue;
    $.ajax({
            type: "POST",
            url: "process.php",
            dataType: "json",
            data: {
                postid: post_id
            },
            success: function(result){
                 if (result.error) {
                    $('#accesserror').show();
                    $('#error').html(result.error).show();
                }
                else {
                    $("#loading").hide();
                    $("#processor").show();

                }

我知道这有问题。请?这是我最后一次寻求帮助。谢谢您,您的所有回答将不胜感激!

4

3 回答 3

0

然后您应该返回$output包含错误的内容,json_encoded()就像您可能对正常结果所做的那样。您还可以使用多个错误消息对数组进行编码。

于 2012-09-03T11:33:53.473 回答
0
 $.ajax({
  type: "POST",
  url: "process.php",
  data: {
  postid: post_id
  },
  success: function(data){
  document.getElementById('processed').innerHTML = data;
  }

你的 process.php

  if($result){
  while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
        $m = $row['processedID'];
        $id = trim($_POST ['postid']);
    try {
        ..something...
    }
    catch (APIHandle $e) {
        echo $output .= "<p>'". $row['name'] . "' processing failed</p>";
     }
  }

如果您的代码在 process.php 中被捕获,它将返回输出并在 ajax 中显示该输出

于 2012-09-03T11:37:45.833 回答
0

听起来你想要的是 JSON。然后您可以检查该error字段是否为空,如果不是则显示错误。试试下面的东西。

if($result) {
    $result = array();

    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $m = $row['processedID'];
        $id = trim($_POST ['postid']);

        try {
            // something
        }
        catch (APIHandle $e) {
            $result['error'] = 'Processing failed!';
        }
    }

    echo json_encode($result);
}

和 jQuery:

$.ajax({
    type: "POST",
    url: "process.php",
    dataType: "json",
    data: {
        postid: post_id
    },

    success: function(result){
        // There was an error
        if (result.error) {
            $('#error').html(result.error).show();
        }

        // No error
        else {
            // Something
        }
    }
});

然后您可以简单地返回其他数据$result['something_else']并显示是否没有错误。此外,此解决方案为您提供了很大的灵活性来选择要显示数据的位置。例如,您可能希望在其他地方显示您的错误,而不是从 PHP 返回的其余数据。如果你只是在 PHP 中回显数据,你就不得不在同一个地方显示它,然后你必须依靠 CSS 来改变定位。

希望能帮助到你。

于 2012-09-03T11:40:59.280 回答