【问题标题】:Run PHP in Javascript function and create a confirm function with PHP在 Javascript 函数中运行 PHP 并使用 PHP 创建一个确认函数
【发布时间】:2014-04-26 20:25:05
【问题描述】:

我有一个名为del() 的函数,我想用它来删除我的SQL 表中的一行。它是通过单击取消读取图像激活的。

首先我希望它向用户输出以下内容:

"Are you sure you want to cancel your booking on". $row['Date'] .",". $row['Period'] . "," . $row['RoomID'] . " 

但我不知道如何将它放在正确的语法中,也不知道它是否可以在 javascript 函数中使用。

下面是函数:

<script>
function del()
{
  var r = confirm("Are you sure you want to cancel your booking on);
  if (r == true) {}
}
</script>

如果r == true 我希望执行此 SQL 代码。

<?php 
  DELETE FROM Booking WHERE BookingID='".$row['BookingID']."'";
?>

实现这一目标的最佳方法是什么?

【问题讨论】:

  • 最好的办法是开始使用带有准备/参数化查询的 PDO。您现在的代码工作方式很可能对 SQL 注入攻击持开放态度。您可能也对 XSS 攻击持开放态度。
  • 这只是国内的一个本地项目。它耗尽了我的 USB 闪存驱动器。它永远不会看到曙光。
  • 您需要向服务器发送一个 HTTP 请求以“运行 PHP” - 一个完整的 FORM SUBMIT 或 AJAX。搜索:“PHP AJAX”。
  • 您知道,PHP 对 sql 了解 NOTHING。仅仅因为有 php 的数据库接口,并不意味着您可以将一些 SQL 填充到 php 代码块中并期望查询神奇地发生。
  • @user3568216 你的意思是什么?如果您不担心安全性,请担心您的应用程序会被撇号有效地破坏……除此之外。

标签: javascript php sql sqlite


【解决方案1】:

您可以像这样在 JavaScript 中嵌入 PHP 变量:

var r=confirm("Are you sure you want to cancel your booking on <?php echo $row['Date']; ?>, <?php echo $row['Period']; ?>, <?php echo $row['RoomID']; ?>");

使用AJAX 提交您的“删除请求”。下面是一个使用 jQuery 框架的例子:

if (r)
{
    jQuery.post('url_to_your_script.php', { 'BookingId': '<?php echo $row['BookingId']; ?>' });
}

在您的 PHP 脚本中,您可以将预订 ID 称为$_POST['BookingId']

有关更多高级参数的信息,请参阅jQuery documentation

【讨论】:

  • 嵌入的 PHP 变量不起作用。相反,它只输出“你确定要取消预订,”
  • 那么,您之前已经确定了它们,不是吗?看来,$row 变量是某些数据库查询的结果。如果你能提供更多关于这方面的代码来帮助你,那将会很有帮助。
  • 永远不要将任意数据直接注入 JavaScript。请改用json_encode(){bookingId: &lt;?php echo json_encode($row['BookingId); ?&gt; }
猜你喜欢
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多