Как обновить поле MYSQL без обновления страницы в PHP? - PullRequest
1 голос
/ 06 октября 2011

Я хочу обновить данные MYSQL, используя текст вместо кнопки отправки. Администратор выберет опцию в выпадающем списке, а затем нажмете «Сохранить», чтобы обновить записи MYSQL. Как это сделать с помощью AJAX или jquery?

Моя кодировка:

<?php

include('config.php');

$per_page = 9; 

if($_GET)
{
$page=$_GET['page'];
}



//get table contents
$start = ($page-1)*$per_page;
$sql = "SELECT bookingID,eventinfo.eventTitle,boothAlias,testbook.bstatus,date, testbook.username, customer.companyName, customer.contactName from eventinfo, testbook, customer where testbook.username=customer.username AND testbook.eventID=eventinfo.eventID order by date desc limit $start,$per_page";
$rsd = mysql_query($sql);
?>

<form method="post" name="form">
<table width="800px">

    <?php
    //Print the contents

    while($row = mysql_fetch_array($rsd))
    {

        $id=$row['companyName'];
        $contactName=$row['contactName'];
        $eventTitle=$row['eventTitle'];
        //$phone=$row['phone'];
        $date=$row['date'];
        $status=$row['bstatus'];
        $booth=$row['boothAlias']

    ?>
    <tr><td style="color:#B2b2b2; padding-left:4px"><?php echo $id; ?></td><td><?php echo $contactName; ?></td>
    <td><?php echo $eventTitle; ?></td><td><?php echo $booth; ?></td><td><?php echo $date; ?></td><td><select name='status' id='status'>
        <option value='-1'>--Select--</option>
    <option value='0'>Approve</option>
    <option value='1'>Reject</option>
    <option value='2'>Pending</option>
    </select></td><td><a href=#>save</a></td>
    </tr>
    <?php
    } //while
    ?>
</table>
</form>

изображение

1 Ответ

1 голос
/ 06 октября 2011

Это на самом деле очень просто, используя jQuery. Во-первых, вы должны создать еще один PHP-скрипт, который на самом деле будет выполнять код UPDATE. Я не уверен, сколько вы знаете о AJAX-запросах, но вы можете думать о них, как о том, что ваш браузер открывает новую вкладку в фоновом режиме, отправляет запрос и возвращает / анализирует ответ с помощью JavaScript.

Итак, я бы написал PHP-скрипт, который вы можете запросить (возможно, «update_field.php» или «update_field_ajax.php»), который выполняет фактическое обновление. Напишите этот скрипт так же, как если бы форма была отправлена ​​с другой страницы (т.е. она будет иметь переменные POST и GET, проверки и т. Д.). Там будет два основных различия. Во-первых, вы передадите параметры POST с помощью jQuery, а во-вторых, вы не вернете HTML (вы можете вернуть HTML, если хотите - но если вы делаете простое обновление, вам действительно нужен какой-то успех или сбой / ошибка ответ на сообщение). Я бы рассмотрел JSON для типа ответа. Итак, вам нужно написать PHP-скрипт, вы будете писать его так же, как обычно.

Далее вы будете использовать jQuery, чтобы получить данные (параметры GET / POST) со страницы и сделать запрос к созданному вами PHP-скрипту. Это не так уж и плохо. Я не уверен, что вы подразумеваете под «использованием текста вместо кнопки отправки», за исключением того, что вы не хотите использовать кнопку отправки, поэтому я объясню это несколько абстрактно. Чтобы запустить вызов AJAX, у вас должно быть что-то, запускающее его. Это будет событие на странице, и это событие вызовет функцию, которая запускает запрос AJAX. Google ищет информацию о событиях jQuery, но, по сути, когда событие вызывается, он вызывает функцию, которую вы определяете. Когда эта функция вызывается, мы можем использовать метод post () jQuery для создания AJAX-запроса на публикацию. Этот вызов метода будет выглядеть примерно так:

jQuery.post('url of your script', {postVarOne: jQuery('some elt').val()}, function () {success function}, 'json');

Подробности jQuery.post можно найти по адресу http://api.jquery.com/jQuery.post/

Так что, в основном, пишите PHP-скрипт, как обычно, который возвращает что-то отличное от HTML, означающее успех / неудачу или ответное сообщение (если вам не нужно вставить HTML прямо в страницу), а затем используйте jQuery.post (или jQuery более универсальный). jQuery.ajax), чтобы ваш браузер запросил этот скрипт с заданными вами переменными GET / POST и проанализировал ответ.

Наконец, ознакомьтесь с этими руководствами для получения дополнительной информации / примеров кода.

http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/

http://www.php4every1.com/tutorials/jquery-ajax-tutorial/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...