2

我正在尝试构建一个站点,您可以在其中直接使用 contenteditable 结合 jquery、ajax 和 PHP 修改和更新 mysql 数据库。该代码通过带有一些 jquery/ajax 的 $_POST['content'] 捕获数据以加载 php 文件(save.php)。save.php 文件运行 mysql UPDATE 以使用用户提供的 contenteditable 输入的 $_POST['content'] 信息更新数据库。

在 save.php 文件中,我使用唯一 ID 来标识必须更新的行。此 ID 可通过 URL 访问。我尝试通过 $_GET['id'] 捕获 ID 并将其转换为 $var_id=$_GET['id']。我的问题是,当我尝试访问从 URL 获得的 id ($var_id) 变量时

前任。http://www.website.org/selectedvariant.php?id=100

在 save.php 文件中无法识别 $var_id 并且 mysql UPDATE 不起作用。我知道这是访问 $var_id 变量的问题,因为当我手动输入 variable_id='100' 时,它可以正常工作。表明 save.php 文件没有得到 $var_id 变量的正确值。

任何有助于解决这一长期挑战的帮助将不胜感激!

保存.php

<?php mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$content=mysql_real_escape_string ($_POST['content']); //gets the posted content
$var_id=$_GET['id'];

$sql="update table_list set column='$content' where id='$var_id'";
if (mysql_query($sql))
{echo 1;
}
?>

other.php 文件(仅相关(我认为?))信息

 $(document).ready(function() {

    $("#save").click(function (e) {         
        var content = $('#editable').html();    

        $.ajax({
            url: 'save.php',
            type: 'POST',
            data: {
            content: content
            },

大部分代码已从教程中提取:

http://gazpo.com/2011/09/contenteditable/

谢谢,罗恩

4

2 回答 2

2

当您进行 ajax 调用时,您需要同时通过某种方法(get 或 post)来content传递id。在您的代码中,您通过方法将content数据发送到. 无论如何都不会发送到您的 php 脚本。将您的参数更改为 -POSTsave.phpIDurl

url:'save.php?id='+WhatYouHaveInHand
于 2012-11-18T13:42:24.180 回答
0

您没有在任何地方传递 ID。这就是问题所在。

对于同样返回 GET 参数的 AJAX POST 调用,参数必须在查询字符串中。所以,例如,如果你想传递一个随机 ID,你会做

$("#save").click(function (e) {         
    var content = $('#editable').html();    
    var randomID = Math.floor(Math.random()*1000);
    $.ajax({
        url: 'save.php?id='+randomID,
        type: 'POST',
        data: {
        content: content
        },this:

您显然需要对此进行调整以提供真实 ID。然而,这个想法是存在的。

于 2012-11-18T13:40:21.550 回答