2012-11-18 119 views
2

我想建立一个网站,您可以直接使用contenteditable修改和更新mysql数据库结合使用jQuery,Ajax和PHP。该代码通过$ _POST ['content']与一些jquery/ajax来加载一个php文件(save.php)来捕获数据。 save.php文件运行一个mysql UPDATE来使用由用户提供的contenteditable输入的$ _POST ['content']信息来更新数据库。

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

ex。获得的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变量获取适当的值。

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

save.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/

谢谢, Ron

+0

Ajax只通过'POST'方法发送'content'。 'save.php'并不真正接收'id'作为查询字符串参数。 – SachinGutte

回答

0

你没有在任何地方通过身份证。这是问题。

对于也返回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。但是,这个想法就在那里。

2

当您进行ajax调用时,您需要通过某种方法(get或post)同时通过contentid。在您的代码中,您通过POST方法将content数据发送至save.php。无论如何,ID不会被发送到您的PHP脚本。将您的url参数更改为 -

url:'save.php?id='+WhatYouHaveInHand 
+0

作品!放置网址:'save.php?id ='+ <?php echo $ var_id;对于那些感兴趣的人。 – Ron

+1

如果此答案帮助您,则将其标记为已接受。 :) – SachinGutte