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で機能するかどうかです。また、最初の「チェックイン」ボタンからユーザーがチェックアウトを押すまでのすべてを保存したいと思います。

もう1つの問題は、ページを何度も更新するのではなく、AJAXでこれを自動的に実行する必要があることです。

助けてくれてありがとう。問題を十分に説明できなかった場合は、教えてください。詳細を記入します。

4

1 に答える 1

4

最初に簡単な質問ですが、変更時にフィールドを非表示にするのではなく、フィールドを1つの形式にすることができますか?

そうすれば、チェックインをクリックしたときにフォームを表示して入力し、フォームの下部にあるチェックアウトを押すと、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ページでは、$_POST通常のフォームを投稿するときと同じようにデータを受け入れる通常のPHPページである必要があります。

于 2012-10-18T02:31:36.993 に答える