2015-03-10 3 views
0

в приведенном ниже коде Я передаю ipdno как параметр, а затем получаю ответ от сервера, для которого это мой код.ajax call не работает должным образом в php

PHP

$('#print').click(function(){ 
      var ipdNo = $('#hid_ipd_id').val();   
      var param = "ipdNo="+ipdNo; 
      alert("Param: "+param); 
      $.ajax({ 
       url: "ipd_bill_print.php", //The url where the server req would we made. 
       async: true, 
       type: "POST", //The type which you want to use: GET/POST 
       data: param, //The variables which are going. 
       dataType: "html", 
       success: function(data){ 
        //alert("Result: "+data+"\nRefreshing page... "); 
        if(data=='success'){ 
         alert("Record updated succcessfully!"); 
         location.reload(true); 
        }else{ 
         alert("Record could not be updated!"); 
        } 
       } 
      }); 

     }); 

В этом коде я хочу, чтобы указать успех, когда есть несколько строк, в противном случае он должен указать отказ.

ipd_bill_print.php

<?php 
    require_once("db/include.php"); 

    $ipd_no = $_POST['ipd_no']; 
    $token = "Empty"; 

    try{ 
     $dbh = getConnection(); 
     $flag = true; 


     $sql = "SELECT ipd_reg_no 
        FROM ipd_bill 
        WHERE ipd_reg_no = ?"; 
     $sth = $dbh->prepare($sql); 
     $sth->bindParam(1,$ipd_no); 
     $row = $sth->fetch(PDO::FETCH_ASSOC); 
     echo $row; 
     if($row >==0) 
      $flag = false; 
     if($flag) 
      echo "success"; 
     else{ 
      $dbh->rollback(); 
      echo "fail"; 
     } 
     //echo "\n FLAG: $flag \n"; 
     $dbh->commit(); 

    }catch(PDOException $e){ 
     print($e); 
     try{ 
      $dbh->rollback(); 
     }catch(PDOException $e){ 
      die($e->getMessage()); 
     } 
    } 
    else{ //if ends here.. 
     echo "Outside if..."; 
} 
+0

Я говорю немного больше о вызовах AJAX И вы можете вернуть все параметры php как JSON, если вы напишете dataType: «JSON». также вы должны прочитать о том, как использовать json_encode() –

+0

И в чем проблема? Что за вопрос? – FazoM

+0

в чем проблема? –

ответ

0

В коде JavaScript вы предоставили ipdNo в качестве параметра AJAX, но в файле PHP вы пытаетесь получить доступ к неопределенному ключ с именем ipd_no через $_POST. Я также рекомендую изменить AJAX dataType от "html" до "text", потому что вы просто повторяете некоторый простой текст в файле PHP.

В файле PHP, чтобы использовать PDO::commit или PDO::rollBack, необходимо сначала вызвать PDO::beginTransaction.

Перед тем как позвонить PDOStatement::fetch, вам необходимо выполнить свою инструкцию через PDOStatement::execute.

В операторе if вам необходимо изменить синтаксически неправильный оператор $row >==0 примерно на $row!==false && count($row)>0. Наконец, учтите, что у вас нет соответствующего заявления if для вас последнего else заявление, в котором вы прокомментировали //if ends here.., однако; Это может быть не видно в вашем фрагменте кода.

Кроме того, вам лучше всегда проверять возвращаемый результат от вызова метода или вызова функции.

Смежные вопросы