0

すべてが 1 つの php ファイルで行われます

HTMLコード

<td>
   <input type="text" name="date_day1" id="date_day1" 
      value="<?php echo $_POST['date_day1']?>" size="1">
</td>
<td>
   <input type="text" name="amount1" id="amount1" 
      value="<?php echo $_POST['amount1']?>" size="5"></td>

次にジャバスクリプト

<script type="text/javascript">
  //cross-browser xmlHTTP getter
  function getHTTPObject() {
    var xmlhttp; // The variable that makes Ajax possible! 
                 //Global XMLHTTP Request object
    //Creating object of XMLHTTP in Internet Explorer
    try {
      XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e) {
      try {
        XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch(oc) {
        XmlHttp = null;
      }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
      try {
        // Set var the new request Opera 8.0+, Firefox, Safari
        xmlhttp = new XMLHttpRequest();
      }//try {
      catch (e) {//if it fails move onto the next
        xmlhttp = false;
      }//catch (e) {
    }//if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

    return xmlhttp;
  }//function getHTTPObject() {

  function init(){
    window.setInterval(autoSave,3000); // 15000=15 seconds
  }

  function autoSave(){
    var date_day1 = document.getElementById("date_day1").value;
    var amount1 = document.getElementById("amount1").value;
    var params = "date_day1="+date_day1+"&amount1="+amount1;
    var http = getHTTPObject();
    http.open("POST", window.location.href, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.send(params);
  }
</script>

そしてphp

$date_day1 = $_POST['date_day1'];
$amount1   = $_POST['amount1'];
$mysqli    = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

if($_SERVER["REQUEST_METHOD"]=="POST"){
  if ($stmt = mysqli_prepare($mysqli, 
     "UPDATE 2_1_journal SET Amount = ? WHERE RecordDay = ? ") ) {

    $stmt->bind_param( 'ds', $amount1 , $date_day1 );
    $stmt->execute();

    echo $date_day1 .' date_day1 from update<br>';
    echo $amount1 .' amount1<br>';
  }    
}

それで何が起こるか。ボタンをクリックせずに Javascript (ajax) を使用すると、ユーザー入力が取得され、php コードに送信されます。Php コードは mysql を更新します。つまり、送信ボタンをクリックしなくても、更新する PHP 変数が作成されるということです ($amount1 , $date_day1)?

しかし、これらの変数が後で存在しないのはなぜですか? ページを更新せずに(送信ボタンをクリックせずに)変数を使用したい。たとえば、入力フォームでは value="" として

どうやってするか?私が理解しているように、jsonを使用する必要がありますか? しかし、私が見つけた情報からは理解できません.... jsonでユーザー入力(またはmysqlからの値)をinput value=""に渡す方法を段階的に書くことができますか

または、すべてがどのように機能するかの本/チュートリアル(ダミーが理解するための本/チュートリアル)でしょうか?

4

1 に答える 1