【问题标题】:using jquery variable value in php?在 php 中使用 jquery 变量值?
【发布时间】:2016-01-21 12:02:51
【问题描述】:

我是一个非常新的开发者......所以虽然这听起来很容易和愚蠢......我迷路了:S 我有一个 html 日历,并且我在数据库上有一个用户表,其中包含 id、user_name、total_holiday 和 holiday_used。目前我对用户进行了 CRUD,因此可以添加、修改或删除用户。

另一方面,我每次点击日历上的某一天时都会弹出一个模式。此模式显示一个带有用户列表的选择,我使用 jQuery 从标记中读取该列表,其中显示了显示用户的表格和一组复选框,其中包含不同的小时数。 (图像更清晰)。

使用 jQuery,我在选定的选项上获取选定选项的值,并将其存储在一个名为 selectedOption 的变量中。

现在,我想实现,当我选择一个用户时,有一个 selectedOption 的值,如果我 ckeck mati(7.5h),它会从这个用户那里得到 7.5 小时,其中 user_name 的列的值与selectedOption,它会从该用户的 holiday_used 列中提取小时数。如果我选中 mati/tarda(15h) 或 tarda/nit sustracting 18h 的复选框,也是一样的。

但是因为我做了非常简单的事情......现在我什至不知道如何开始......我办公室的办公桌邻居告诉我我必须用 Ajax 来做,因为没有其他方式我可以将我存储在 selectedOption 中的值与 jQuery 传递给我用来执行查询的 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 列匹配......拜托!

谢谢

【问题讨论】:

  • 你真的必须把你的问题分解成相关的东西。而且你同事是对的。您可以通过 ajax 调用带有 post 参数的服务器端脚本。为了简化ajax的过程,很多人通常使用jquery。我在您的帖子中看不到任何一行 javascript。你应该先看看 jQuery 文档。
  • 我的 jquery 代码是否相关? :SI 意思是......只是这样: $('select#usersList').on('click', function() { var selectedOption = ($( "select#usersList option.selectOption:selected" ).val ()); 返回选中选项; });没有别的:S
  • 我会说也许你通过查看“在 php 中使用 jQuery 变量”来寻找错误的地方。这是不可能的,因为 PHP 是服务器端,并且在 jQuery 存在于页面、客户端之前执行。您必须将 jQuery 值发布到 PHP 页面 - 正如您的同事所说,这可以通过 AJAX 完成,也可以通过将值放入表单并提交表单来完成。
  • 是的,您的 jQuery 可能是其中最相关的部分,因为它可用于进行 AJAX 调用,它是您问题的一部分。你问的是在 PHP 中使用 jQuery 值,如果没有 jQuery,那么我们不知道你想使用什么值。

标签: php jquery ajax database


【解决方案1】:

您可以使用 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多