2012-07-04 2 views
0

Мне нужна помощь с помощью одной функции ajaxНужна функция Ajax - обновить базу данных без обновления страницы

Это исходная настройка страницы. страница будет содержать таблицу со ссылками в этой форме

.... ссылка - button1 - button2 звено - button1 - button2 звено - button1 - button2 ...

где button1 для сокрытия строка и кнопка2 для скрытия + добавляет +1 к этой ссылке в db. каждая ссылка будет иметь уникальный идентификатор, который будет работать с кнопкой2, поэтому было бы легко настроить его. Таким образом, посетитель будет нажать на одну из кнопки в строке, строка будет скрывать, то он переходит в другой ряд ....

DB установки:

ID - ссылка - .... - nmbOFlikes

Моя проблема в том, что я не знаю Ajax, и это только решение для обновления базы данных без необходимости обновления после каждой нажатия кнопки.

Эта страница не статична, она отформатированные с помощью другой функции, которая черпает данные из БД Это простой HTML-версии, так что если кто-нибудь может помочь ...

Так это Javascript без функции

$(document).ready(function(){ 
    $("button.live").click(function(){ 
    $(this).parents('tr').hide(); 
     alert('Link is hidden'); 
    }); 
$("button.add").click(function(){ 
    $(this).parents('tr').hide(); 
    alert('This link is dead'); 
    $.post("update_db.php", { id: button_id, increment: true }, 
    function(data) { 
    alert("Link incremented"); 
}); 

}); });

И это таблица

<table width="500" border="0" cellspacing="0" cellpadding="3"> 
    <tr> 
     <td><p>Link 1</p></td> 
     <td><button class="live">live</button></td> 
     <td><button class="add" id="1">add</button></td> 
    </tr> 
    <tr> 
     <td><p>Link 2</p></td> 
     <td><button class="live">live</button></td> 
     <td><button class="add" id="2">add</button></td> 
    </tr> 
</table> 
+0

Существует множество примеров ajax. Вы можете решить, хотите ли вы повторно называть обновление или обновлять один раз или что-то еще, но принцип тот же. Ajax вкратце, javascript вызывает некоторые данные, которые затем можно использовать для назначения, скажем, внутреннего html или любого другого элемента. Взгляните на примеры и попробуйте – BugFinder

+0

См. Http://api.jquery.com/ jQuery.ajax/ – andlrc

ответ

1

Вы бы не добавить значение непосредственно в базу данных, вы будете отправлять данные в сценарий первого. Я не совсем ясно, на что вы пытаетесь достичь, но функция пост может выглядеть примерно так:

$.post("update_database_with_ajax.php", { id: button_id, increment: true }, 
    function(data) { 
    alert("Link incremented"); 
    }); 

Вот функциональный jsFiddle пример: Jquery POST Example

update_data_With_ajax.php

/** This is an example and should not be used 'as is' **/ 
if (isset($_REQUEST['increment']) { 

    // Connect to MySQL 
    $conn = mysql_connect("localhost", "root", ""); 

    if (!$conn) { 
     die('Could not connect: ' . mysql_error()); 
    } 

    // Fetch the values we posted using AJAX 
    $id = mysql_real_escape_string($_REQUEST['id']); 

    //Select your database 
    mysql_select_db("my_db", $conn); 

    //increment your number of clicks  
    mysql_query("UPDATE table_name SET nmbofclicks = nmbofclicks + 1 WHERE id = {$id}"); 

} 
+0

Я обновил раздел update_data_with_ajax.php, надеюсь, что это немного лучше. Основываясь на вашем комментарии ниже, просто имейте в виду, что вы используете ajax для отправки ** POST ** данных не ** GET ** – Slukehart

+0

Я пробовал этот путь, но vaalue не изменен в db ... Возможно, я не понял это правильно? ! :/ –

+0

Хорошо два вопроса (1), что выглядит update_db.php? (2) Где вы берете идентификатор кнопки. Я думаю, вам нужно немного больше направления, чем я включил, позвольте мне обновить его. – Slukehart

0

Простые использования jQuery.ajax:

$.ajax({ 
    url: "serversite.php", 
    type: "POST", 
    data: { 
     // Object of data you will send to serversite.php 
    }, 
    success: function() { 
     // everything went ok. 
    } 
}); 
+0

ОК, я понимаю, что мне нужно создать некоторую страницу, которая будет обрабатывать мой запрос для db, поэтому мне не нужно обновлять каждую кнопку нажатой. Все, что я хочу передать, это id of buttom для этой страницы. process.php? id = buttom id, и там в process.php я все сделаю. Но, я до сих пор не знаю, как это кодировать! –

Смежные вопросы