2015-11-05 40 views
0

在我的项目中,我在表中有一个贪睡按钮,表中填充了数据库中的值。我给了一个href这个按钮,它将打开一个引导模式对话框。从Bootstrap模式运行查询

在模态中,我已经调用了特定ID的数量。

代码模态低于:

<?php 
    require_once '../invoice/config.php'; 
    $reserver = $_GET["id"]; 
    echo $reserver; 
    $result = mysqli_query($con,"SELECT * FROM table_name where id = '$reserver'"); 
    $row = mysqli_fetch_array($result); 
?> 
<form id="modal-form" data-remote="true" method="post" action="saveSnoozeReminder.php?id='<?php echo $reserver ?>'" > 
    <div class="modal-body"> 
     <p>SELECT DATE FOR REMINDER </p> 
     <label>date</label> 
     <input type="date" name="snoozeReminderDate" /> 
     <label>amount</label> 
     <input type="text" name="amt" value="<?php echo $row['amount']; ?> " disabled > 
    </div> 
    <div class="modal-footer"> 
     <button type="submit" class="btn btn-default" data-dismiss="modal" value="">Snooze</button> 
     <button type="button" class="btn btn-default" data-dismiss="modal" onClick="window.location.reload()">Close</button> 
    </div> 
</form> 

现在进一步为用户将选择日期,并按下贪睡按钮,我已经写了,将被要求表单提交和更新提醒另一个PHP文件为表中的特定ID。

另一个文件被命名为saveSnoozeReminder.php并为它的代码是:

<?php 
    require_once '../invoice/config.php'; 
    $recordid = $_GET["id"]; 
    echo $recordid; 
    $snoozedate = $_POST['snoozeReminderDate']; 
    echo $snoozedate; 
    $snoozeQuery = "UPDATE paymentremainder SET reminderdate='$snoozedate' WHERE id = $recordid";   
    if (mysqli_query($con, $snoozeQuery)) { 
     $message = 'Reminder Snoozed Successfully'; 
     echo "<SCRIPT type='text/javascript'> 
     alert('$message'); 
     window.location.replace('index.php'); 
     </SCRIPT>"; 
    } else { 
     return ""; 
    } 
?> 

运行此代码也后,更新查询不被解雇。有没有什么方法可以使用Ajax或什么。有人可以帮助它。

回答

1

以您目前的做法,也有<form>一些错误

  1. 请勿张贴id与表单操作URL action="saveSnoozeReminder.php?id='<?php echo $reserver ?>'"一起,创建hidden输入和id值添加到它,它张贴与形式
  2. 沿
  3. 不要disable输入使用readonly

HTML表单

<form id="modal-form" data-remote="true" method="post" action="saveSnoozeReminder.php" > 
<input type="hidden" name="id" value="<?php echo $reserver ?>"> 
    <div class="modal-body"> 
     <p>SELECT DATE FOR REMINDER </p> 
     <label>date</label> 
     <input type="date" name="snoozeReminderDate" /> 
     <label>amount</label> 
     <input type="text" name="amt" value="<?php echo $row['amount']; ?> " readonly > 
    </div> 
    //You don't need to close the modal `data-dismiss="modal"` when submitting the form, it will be auto closed 
    <div class="modal-footer"> 
     <button type="submit" class="btn btn-default" value="submit">Snooze</button> 
     <button type="button" class="btn btn-default" data-dismiss="modal" onClick="window.location.reload()">Close</button> 
    </div> 
</form> 

,并在PHP中,与$_POST取代$_GET和使用isset功能

<?php 
    require_once '../invoice/config.php'; 
    if(isset($_POST['id'])) { //isset function 
     $recordid = $_POST["id"]; //replace $_GET with $POST 
     echo $recordid; 
     $snoozedate = $_POST['snoozeReminderDate']; 
     echo $snoozedate; 
     $snoozeQuery = "UPDATE paymentremainder SET reminderdate='$snoozedate' WHERE id = '$recordid'"; 
     if (mysqli_query($con, $snoozeQuery)) { 
      $message = 'Reminder Snoozed Successfully'; 
       echo "<SCRIPT type='text/javascript'> 
       alert('$message'); 
       window.location.replace('index.php'); 
       </SCRIPT>"; 
     } else { 
      return ""; 
     } 
    } 
?> 

这将解决其中更新查询不被解雇的问题。使用Ajax

解决您询问备用Ajax解决方案。

  1. submitbuttonSnooze按钮的变化类型,这样的形式不会提交bydefault并没有必要使用e.preventdefaultreturn false在阿贾克斯方法
  2. <form>
  3. 删除action="saveSnoozeReminder.php"ids输入你想传递值通过Ajax和Snooze按钮绑定它与jQuery点击功能

HTML表单

<form id="modal-form" data-remote="true" method="post"> 
<input type="hidden" name="id" id="reserverid" value="<?php echo $reserver ?>"> 
    <div class="modal-body"> 
     <p>SELECT DATE FOR REMINDER </p> 
     <label>date</label> 
     <input type="date" id="snoozeReminderDate" name="snoozeReminderDate" /> 
     <label>amount</label> 
     <input type="text" name="amt" id="amt" value="<?php echo $row['amount']; ?> " readonly > 
    </div> 
    //You don't need to close the modal `data-dismiss="modal"` Snooze button, otherwise it will close the modal 
    <div class="modal-footer"> 
     <button type="button" class="btn btn-default" value="submit" id="Snooze">Snooze</button> 
     <button type="button" class="btn btn-default" data-dismiss="modal" onClick="window.location.reload()">Close</button> 
    </div> 
//Ajax message here 
<div id="message"></div> 
</form> 

现在的Ajax方法调用

$(document).ready(function() { 
    $("#Snooze").click(function() { 
     var snoozeid = $('#reserverid').val(); //id of row 
     var snoozeReminder = $('#snoozeReminderDate').val(); //date value 
     var dataString = 'snoozeid=' + snoozeid + '&snoozeReminder=' + snoozeReminder; 
     alert(dataString); 
     $.ajax({ 
      type: "POST", 
      url: "saveSnoozeReminder.php", 
      data: dataString, 
      cache: false, 
      success: function (data) { 
       $("#message").html(data); 
      } 
     }); 
    }); 
}); 

$("#message").show(data); HTML表单里面,它会显示从PHP saveSnoozeReminder.php

和PHP saveSnoozeReminder.php Ajax响应将是

<?php 
    require_once '../invoice/config.php'; 
    if(isset($_POST['snoozeid'])) { 
     $recordid = $_POST["snoozeid"]; 
     $snoozedate = $_POST['snoozeReminder']; 
     $snoozeQuery = "UPDATE paymentremainder SET reminderdate='$snoozedate' WHERE id = '$recordid'"; 
     if (mysqli_query($con, $snoozeQuery)) { 
       echo "<strong>Success!</strong> Everything Is Good."; 
     } else { 
       echo "<strong>Error!</strong> Something Went Wrong."; 
     } 
    } 
?>