2016-03-05 72 views
-1

验证功能无法通过PHP和MySQL

function validate(add_app_form){ 
    var valid = true; 
    var userTxt = document.getElementById("patient_name").value; 
    var dateTxt = document.getElementById("app_date").value; 
    var timeTxt = document.getElementById("app_time").value; 
    var oldName = document.getElementById("select_old").value; 
    if(userTxt == "" && dateTxt == "" && timeTxt == "" && oldName == "choose") 
    { 
     //$("#lblTxt").text("Username and Password are required!"); 
     $('#patient_name').css('border-color', 'red'); 
     $('#app_date').css('border-color', 'red'); 
     $('#app_time').css('border-color', 'red'); 
     $('#select_old').css('border-color', 'red'); 
     $("#add_app_lbl").text("Please Fill all the form"); 
     valid = false; 
    } 
    if(userTxt == "" && oldName == "choose") 
    { 
     $('#patient_name').css('border-color', 'red'); 
     $("#add_app_lbl").text("Please Add Patient Name Or select an old patient"); 
     valid = false; 
    } 
    if(dateTxt == "") 
    { 
     $('#app_date').css('border-color', 'red'); 
     $("#add_app_lbl").text("Please Add a Date"); 
     valid = false; 
    } 
    return valid; 
} 

编辑的代码

<?php 
    //Set error reporting on 
    error_reporting(E_ALL); 
    ini_set("display_errors", 1); 

    //Include connection file 
    require_once('../include/global.php'); 


    $user = $_SESSION['username']; 
    $id_logged = $_SESSION['login_id']; 

    if(isset($_POST['add_app_btn'])){ 
    //Values From AJAX 
     $patient_name = $_POST['patient_name']; 
     $date_app = $_POST['app_date']; 
     $time_app = $_POST['app_time']; 
     $reason = $_POST['app_reason']; 
     $old_patient_id = $_POST['select_old']; 

     //If new patient 
     if($patient_name == "" && $old_patient_id != "choose") 
     { 
      try{  
     //See if date and time exist 
       $appExist = "SELECT * FROM appointment WHERE id_logged = :id_logged AND date_app = :date_app and time_app = : time_app"; 
       $appExistStmt = $conn->prepare($appExist); 
       $appExistStmt->bindValue(":id_logged", $id_logged); 
       $appExistStmt->bindValue(":date_app", $date_app); 
       $appExistStmt->bindValue(":time_app", $time_app); 
       $appExistStmt->execute(); 
       $appExistStmtCount = $appExistStmt->rowCount(); 

       if($appExistStmtCount == 0) 
        { 
         //Add to appointment table 
         $appAdd = "INSERT INTO appointment(id_logged, patient_id, date_app, time_app, reason) 
            VALUES(:id_logged, :patient_id, :date_app, :time_app, :reason)"; 
         $appAddStmt = $conn->prepare($appAdd); 
         $appAddStmt->bindValue(":id_logged", $id_logged); 
         $appAddStmt->bindValue(":patient_id", $old_patient_id); 
         $appAddStmt->bindValue(":date_app", $date_app); 
         $appAddStmt->bindValue(":time_app", $time_app); 
         $appAddStmt->bindValue(":reason", $reason); 

         $appAddStmt->execute(); 

         echo "added"; 
        } 
        else 
        { 
         echo "not added"; 
         header("Location: add_appoint.php"); 
        } 
       } 

      catch(PDOException $m) 
      { 
       $m->getMessage(); 
       echo "error"; 
       header("Location: add_app_btnoint.php"); 
      } 
    } 
    } 
    ?> 

编辑的代码2

<form class="form-horizontal" id="add_app_form" method="post" action="add_appoint.php" onSubmit="return validate(this);"> 
        <div class="box-body"> 
        <div class="form-group"> 
         <label for="patient_name" class="col-sm-3 control-label">Old Patient</label> 
         <div class="col-sm-4"> 
         <select id="select_old" name="select_old"> 
          <option value="choose">Choose Name</option> 
          <?php foreach($name_array as $na) { ?> 
          <option value="<?php echo $na['id'] ?>"><?php echo $na['patient_name'] ?></option> 
          <?php } ?> 
         </select> 
         </div> 
         <label for="patient_name" class="col-sm-1 control-label">New</label> 
         <div class="col-sm-4"> 
         <input type="text" class="form-control" id="patient_name" name="patient_name" placeholder="New Patient Name"> 
         </div> 
        </div> 
        <div class="form-group"> 
         <label for="app_date" class="col-sm-2 control-label">Date</label> 
         <div class="col-sm-4"> 
         <input type="date" class="form-control" id="app_date" name="app_date"> 
         </div> 
         <label for="app_time" class="col-sm-2 control-label">Time</label> 
         <div class="col-sm-4"> 
         <input type="time" class="form-control" id="app_time" name="app_time"> 
         </div> 
        </div> 
        <div class="form-group"> 
         <label for="app_reason" class="col-sm-2 control-label">Reason</label> 
         <div class="col-sm-10"> 
         <textarea class="form-control" id="app_reason" name="app_reason" placeholder="Reason"></textarea> 
         </div> 
        </div> 
        </div><!-- /.box-body --> 
        <div class="box-footer"> 
        <button type="submit" id="add_app_btn" name="add_app_btn" class="btn btn-success pull-right">Add Appointment</button> 
        </div><!-- /.box-footer --> 
       </form> 

添加数据我有一个PHP从表单获取值并将其添加到MySQL数据库中的代码。 PHP代码的第一部分,请查看管理员是否从下拉列表中选择一个已存在的患者,然后添加具有原因的约会日期和时间。

然后将值发布到PHP代码中,我们看看在这些日期和时间中是否已经预约。如果没有($appExistStmtCount == 0)然后去插入预约。

问题是什么都没有添加到数据库,并且看不到任何PHP错误的回应。

这里是PHP代码:

<?php 
    //Set error reporting on 
    error_reporting(E_ALL); 
    ini_set("display_errors", 1); 

    //Include connection file 
    require_once('../include/global.php'); 


    $user = $_SESSION['username']; 
    $id_logged = $_SESSION['login_id']; 

    if(isset($_POST['add_app_btn'])){ 
    //Values From AJAX 
     $patient_name = $_POST['patient_name']; 
     $date_app = $_POST['app_date']; 
     $time_app = $_POST['app_time']; 
     $reason = $_POST['app_reason']; 
     $old_patient_id = $_POST['select_old']; 

     //If new patient 
     if($patient_name == "" && $old_patient_id != "choose") 
     { 
      try{  
     //See if date and time exist 
       $appExist = "SELECT * FROM appointment WHERE id_logged = :id_logged AND date_app = :date_app and time_app = : time_app"; 
       $appExistStmt = $conn->prepare($appExist); 
       $appExistStmt->bindValue(":id_logged", $id_logged); 
       $appExistStmt->bindValue(":date_app", $date_app); 
       $appExistStmt->bindValue(":time_app", $time_app); 
       $appExistStmt->execute(); 
       $appExistStmtCount = $appExistStmt->rowCount(); 

       if($appExistStmtCount == 0) 
        { 
         //Add to appointment table 
         $appAdd = "INSERT INTO appointment(id_logged, patient_id, date_app, time_app, reason) 
            VALUES(:id_logged, :patient_id, :date_app, :time_app, :reason)"; 
         $appAddStmt = $conn->prepare($appAdd); 
         $appAddStmt->bindValue(":id_logged", $id_logged); 
         $appAddStmt->bindValue(":patient_id", $old_patient_id); 
         $appAddStmt->bindValue(":date_app", $date_app); 
         $appAddStmt->bindValue(":time_app", $time_app); 
         $appAddStmt->bindValue(":reason", $reason); 

         $appAddStmt->execute(); 

         echo "added"; 
        } 
        else 
        { 
         echo "not added"; 
         header("Location: add_appoint.php"); 
        } 
       } 

      catch(PDOException $m) 
      { 
       $m->getMessage(); 
       echo "error"; 
       header("Location: add_app_btnoint.php"); 
      } 
    } 
    } 
    ?> 

而且这里的HTML表单:

<form class="form-horizontal" id="add_app_form" onSubmit="return validate(this);"> 
        <div class="box-body"> 
        <div class="form-group"> 
         <label for="patient_name" class="col-sm-3 control-label">Old Patient</label> 
         <div class="col-sm-4"> 
         <select id="select_old" name="select_old"> 
          <option value="choose">Choose Name</option> 
          <?php foreach($name_array as $na) { ?> 
          <option value="<?php echo $na['id'] ?>"><?php echo $na['patient_name'] ?></option> 
          <?php } ?> 
         </select> 
         </div> 
         <label for="patient_name" class="col-sm-1 control-label">New</label> 
         <div class="col-sm-4"> 
         <input type="text" class="form-control" id="patient_name" name="patient_name" placeholder="New Patient Name"> 
         </div> 
        </div> 
        <div class="form-group"> 
         <label for="app_date" class="col-sm-2 control-label">Date</label> 
         <div class="col-sm-4"> 
         <input type="date" class="form-control" id="app_date" name="app_date"> 
         </div> 
         <label for="app_time" class="col-sm-2 control-label">Time</label> 
         <div class="col-sm-4"> 
         <input type="time" class="form-control" id="app_time" name="app_time"> 
         </div> 
        </div> 
        <div class="form-group"> 
         <label for="app_reason" class="col-sm-2 control-label">Reason</label> 
         <div class="col-sm-10"> 
         <textarea class="form-control" id="app_reason" name="app_reason" placeholder="Reason"></textarea> 
         </div> 
        </div> 
        </div><!-- /.box-body --> 
        <div class="box-footer"> 
        <button type="submi;" id="add_app_btn" class="btn btn-success pull-right">Add Appointment</button> 
        </div><!-- /.box-footer --> 
       </form> 

PS

值可以在URL中可以看到,但页面只是刷新没有添加任何东西

+0

http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display请阅读并告诉我们错误代码。 –

+0

ajax代码在哪里?你有没有试过'print_r($ _ POST)'? –

+1

而btw - 'add_app_btn'是一个'id'。它没有传递给服务器。 –

回答

1

你的表单没有方法,通过get传递数据。您需要将method="post"添加到您的表单中。

编辑。正如@u_mulder提到的,如果单击按钮,您需要将name属性添加到您的按钮中以检查您的php。

+0

看到我编辑的代码1和2 – androidnation

+0

告诉我们js函数验证() –

+0

看到它我刚刚添加它 – androidnation