【发布时间】: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í (7.5h)<br>
<input type="checkbox" class="torns" name="holiday_used" value="matiTarda">matí / 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,那么我们不知道你想使用什么值。