从另一个PHP文件中获取POST方法的错误

时间:2012-09-03 11:29:56

标签: php ajax json

我一直在寻找答案,但我仍然不知道如何去做。说实话,我不擅长编程,而且我还在学习。

下面是我的代码:

$.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();

                }

我知道这有什么问题。 请?这是我最后一次请求帮助。 谢谢你,你的所有答案将非常感谢!

3 个答案:

答案 0 :(得分:0)

然后您应该返回包含错误$output的{​​{1}},因为您可能正常处理正常结果。您还可以使用多个错误消息对数组进行编码。

答案 1 :(得分: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 dispay中输出

答案 2 :(得分: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来改变定位。

希望它有所帮助。