2015-10-22 53 views
1

我很新開發....所以儘管它聽起來簡單,愚蠢的....我迷路了:S 我有一個HTML日曆,和我有一個用戶表的數據庫上,ID爲, user_name,total_holiday和holiday_used。目前,我對用戶進行了CRUD,因此用戶可以添加,修改或刪除。在php中使用jQuery變量值?

在另一方面,我有我點擊日曆上的一個日子,每次彈出一個模式。這個模式顯示一個select用戶列表,我使用jQuery從標記中讀取顯示用戶和一組複選框的表格,其中包含不同的小時數。 (在圖像上更清晰)。

enter image description here

使用jQuery我正在上選擇的選擇選項的值,和我它保存在一個變量稱爲selectedOption。

現在,我想要實現的是,當我選擇一個用戶,所以有一個selectedOption值時,如果我重新啓動mati(7.5h),它會從這個用戶持續7.5小時,user_name的列的值與selectedOption,併爲該用戶提供holiday_used列的小時數。如果我檢查複選框,說明mati/tarda(15h)或tarda/nit 18小時複製。

但是,因爲我已經做了很簡單的東西......現在我不知道如何甚至開始....我的書桌鄰居在此間舉行的辦公室告訴我,我有阿賈克斯做到這一點,因爲有而不是其他方式,我可以將jQuery存儲在selectedOption中的值傳遞給我用來執行查詢的php。

那麼我這樣做的遠....

這是模態:

<div id="modal" tabindex="-1" role="dialog" class="modal fade" aria-hidden="true" aria-labelledby="modalLabel"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
       <h3 id="modalLabel"></h3> 
      </div> 
      <div class="modal-body"> 
       <form id="equipo" action="edit_holiday.php"> 
       <div class="leftColumn"> 
        <select id="usuarisLlista"> 
        <option selected disabled>Selecciona un usuari...</option> 
        </select> 
       </div> 
       <div class="input_group"> 
       <div class="clearfix"></div> 
       <div class="interval"> 
       <input type="checkbox" id="interval_check"/>Interval<br /> 
       <div id="desde"> 
        De: <select class="hores" name="holiday_used" disabled> 
        <?php for ($i = 0; $i <= 23; $i++) : ?> 
         <option value="<?php echo $i; ?>"><?php printf ("%02d",$i); ?></option> 
        <?php endfor; ?> 
       </select>:<select class="minuts" name="holiday_used" disabled> 
        <?php for ($i = 0; $i <= 45; $i+=15) : ?> 
         <option value="<?php echo $i; ?>"><?php printf ("%02d",$i); ?></option> 
        <?php endfor; ?> 
       </select> 
       </div> <div id="fins"> 
       fins: <select class="hores" name="holiday_used" disabled> 
        <?php for ($i = 0; $i <= 23; $i++) : ?> 
         <option value="<?php echo $i; ?>"><?php printf ("%02d",$i); ?></option> 
        <?php endfor; ?> 
       </select>:<select class="minuts" name="holiday_used" disabled> 
        <?php  
        for ($i = 0; $i <= 45; $i+=15) : ?> 
         <option value="<?php echo $i; ?>"><?php printf ("%02d",$i); ?></option> 
        <?php endfor; ?> 
       </select> 
       </div> 
        </div> 
       <br>  
       <input type="checkbox" class="torns" name="holiday_used" value="mati">mat&iacute; (7.5h)<br> 
       <input type="checkbox" class="torns" name="holiday_used" value="matiTarda">mat&iacute;/tarda (15h)<br> 
       <input type="checkbox" class="torns" name="holiday_used" value="tardaNit">tarda/nit (18h)<br> 
       </div> 
       <div class="clearfix"></div>  
       </form> 
      </div> 
      <div class="modal-footer"> 
       <button class="btn" data-dismiss="modal" aria-hidden="true">Tancar sense guardar</button> 
       <button type="submit" id="hoursSubmission" class="btn btn-primary">Guardar i tancar</button>  
      </div> 
     </div> 

然後edit_holiday.php這是模態內窗體上的動作:

if (isset($_POST['submit'])) { 

global $conn; 

$user_id = $_GET['user_id']; 
$user_name = $_POST['user_name']; 
$total_holiday = $_GET['total_holiday']; 
$holiday_used = $_GET['holiday_used']; 
$holiday_left = $total_holiday - $holiday_used; 

    //Here I would put something like: 

if (strpos(selectedOption, $user_name) == true) { 

    if(mati_checkbox is checked) { 

    $holiday_used = 7.5; 
    $query = "UPDATE users SET "; 
    $query .= "holiday_used = '{$holiday_used}' "; 
    $query .= "WHERE id = {$user_id} "; 
    $query .= "LIMIT 1"; 
    } 
} 

但是就像你所看到的,我的頭是一個爛攤子。如何使用度假增加其價值而不是更新它?任何人都可以幫我找到方法嗎?也許告訴我一些步驟來達到我的目標...如何使用selectedOption的值來比較它並將其與user_name列匹配.....請點擊!

謝謝

+1

你真的要你的問題分解到相關的東西。而且你同事是對的。您可以通過ajax調用帶post參數的服務器端腳本。爲了簡化Ajax的過程,很多人通常使用jQuery。我在你的文章中看不到任何一行javascript。你應該先看一下jQuery文檔。 –

+0

我的jQuery代碼有關嗎? :SI的意思是....只是這個: $('select#usersList')。on('click',function(){ var selectedOption =($(「select#usersList option.selectOption:selected」 ).val()); return selectedOption; }); 沒有別的:S –

+1

我會說,也許你正在尋找'在php中使用jQuery變量'在錯誤的地方。這是不可能的,因爲PHP是服務器端,並且在客戶端頁面上存在jQuery之前執行。您必須將jQuery值發佈到PHP頁面 - 這可以通過您的同事說的AJAX來完成,或者將值放入表單並提交表單。 – Dhunt

回答

2

你可以使用AJAX爲您的同事說這樣做,或者,你可以用你想用jQuery值的形式填充隱藏字段。然後,當表單發佈時,PHP將有權訪問此表單字段。

HTML

<input type="hidden" value="" name="jQueryValue" id="jQueryField"> 

jQuery的

(function($) { 

    'use strict'; 

    $('#jQueryField').val('Hello PHP!'); 

})(jQuery); 

PHP

if (isset($_POST['submit'])): 
    var_dump($_GET['jQueryValue']); 
endif;