4

我一直在为医生办公室工作。我很擅长 HTML/CSS 和一些 PHP,但我仍在努力学习 Javascript/JQuery。

所以描述我的问题的最简单方法(至少对我来说,我的问题非常复杂)是使用图像(如果这不是描述这个问题的最佳方式,请告诉我,我会更详细地描述它): 在此处输入图像描述

我有 PHP 代码,它接受传递给它的值(即位置编号)并将位置编号与用户的时间一起插入到数据库中。

这是PHP代码:

<?php
  date_default_timezone_set('America/Denver');

  $apptid = $_REQUEST['apptid'];
  $currentlocation = $_REQUEST['currentlocation'];
  $currentlocationstart = date("Y-m-d H:i:s"); 

  /*** mysql hostname ***/
  $hostname = '******';

  /*** mysql username ***/
  $username = '***********';

  /*** mysql password ***/
  $password = '***************';


  $conn = new PDO("mysql:host=$hostname;dbname=sv", $username, $password);
  /*** The SQL SELECT statement ***/
  $sql = "UPDATE schedule SET currentlocation = ?, currentlocationstart = ? WHERE apptid= ? ";

  $q = $conn->prepare($sql);
  $q->execute(array($currentlocation,$currentlocationstart, $apptid));

?>

这是 html 代码(填充了一些 php,用于填充):

$sql = "SELECT * FROM locations order by patientlocation ASC";

echo "<td><select name=location>";
foreach ($dbloc->query($sql) as $row2)
    {
    echo "<option>".$row2['patientlocation']."</option>";
    }
            echo "<option value='Check Out'>Check Out</option>";
    echo "</select></td>";

所以我遇到的问题是如何使用 Javascript/JQuery 执行此操作,以及我的 php 是否可以与 Javascript/Jquery 一起使用。我还想存储从最初的“签入”按钮到用户点击签出的所有内容。

另一个问题是我需要使用 AJAX 自动发生这种情况,而不是多次刷新页面。

非常感谢所有和任何帮助。如果我没有很好地解释我的问题,请告诉我,我会填写更多详细信息!

4

1 回答 1

4

首先是一个简单的问题,您是否能够将字段变成一种形式而不是让它们在更改时消失?

这样,当他们单击签入时,您可以使表单出现,他们填写,当他们在表单底部按结帐时,我们可以使用 AJAX 提交表单并显示响应。

所以这将是这样的:

<script type="text/javascript">
$(document).ready(function() {
    // Hide the form on load      
    $('#myForm').hide();
    // Hide the completed message
    $('#finished').show();
});

// When someone clicks checkin this function will be called
$('#checkIn').click(function(){
    $e = $(this);
    $.ajax({
        type: "POST",
        url: "[URL OF PHP PAGE HERE]", // this page should add date to the database
        data: "checkIn="+$(this).val(), // This will send $_POST['checkIn']
        success: function(){
           // Display the form once the AJAX is finished 
           $('#myForm').show();
        }
    });
});

// This function will be called when someone uses the select field
$('.[yourClassName]').change(function(){
    $e = $(this);
    $.ajax({
        type: "POST",
        url: "[URL OF PHP PAGE HERE]",
        data: "yourFieldName="+$(this).val(),
        success: function(){
           // Display the form once the AJAX is finished 
           alert('Done');
        }
    });
});

// When someone clicks checkOut this function will be called
$('#checkOut').click(function(){
    $e = $(this);
    $.ajax({
        type: "POST",
        url: "[URL OF PHP PAGE HERE]", // this page should save data to db
        data: "example="+$('select#exampleId').val(), 
        success: function(){
           // Hide the form again 
           $('#myForm').hide();
           // Show the finished div with your success msg
           $('#finished').show();
        }
    });
});
</script>

<input type="button" value="Check In" id="checkIn" />
<form method="post" id="myForm" action="">
    // Build the rest of your form here
    <select name="example" id="exampleId">
        <option value="1">Test</option>
    </select>

    <input type="button" value="Check Out" id="checkOut" />
</form>
<div id="finished" style="color:#ff0000;">Checked Out</div>

应该就是这样,除非您当然需要在我的示例所在的位置构建自己的表单。使用您将 AJAX 发送到的 PHP 页面,它应该是一个常规的 PHP 页面,它接受$_POST数据,就像您正常发布表单时一样。

于 2012-10-18T02:31:36.993 回答