2012-11-18 117 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