Проблемы с PHP SQL HTML и AJAX представления - PullRequest
0 голосов
/ 03 марта 2011

Так что у меня есть еще одна проблема,

Я пытаюсь заставить работать сценарий AJAX, но при нажатии страница перезагрузится, но не удастся ОБНОВИТЬ поле базы данных.

Код, который я использую, работает на других похожих скриптах на сайте, но по какой-то причине этот код, использующий тот же самый код, не работает, используемый код приведен ниже;

HTML-код для отправки звонка в AJAX:

<input onClick="read('<? echo $id; ?>')" id="read" name="read" type="checkbox" value="1" style="position:relative; top:2px; width: auto">

Код для подтверждения выбора пользователя и отправки в файл обработки формы:

function read(ID) {
    if(confirm('Are you sure you have read this carefully, you will not be alerted again "' + ID + '" ?')) {
        $.get('http://<? echo ROOT . ADMIN . INCLUDES; ?>formHandling.php', { read: ID }, function(data) {
            window.location.href = 'http://<? echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].""; ?>';
        });
    }
    return false;
}

И, наконец, код для обработки запроса SQL:

if (isset($_GET['read'])) {

    // Pass the GET data and associate them to variables
    $read = trim($_GET['read']);

    $query  = "UPDATE cms_motd SET read='$read' WHERE id='1'";
    $result = mysql_query($query)or die("Database query died: " . mysql_error());

    unset($_GET['readConfirm']);
}

Заранее благодарим за всю эту помощь.

С уважением,

Dan.

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Разве вы не имеете в виду:

$query  = "UPDATE cms_motd SET read='1' WHERE id='$read'";

Вместо:

$query  = "UPDATE cms_motd SET read='$read' WHERE id='1'";

Редактировать:

Я не знаю, еслиэто ошибка копирования и прошлого:

$result = mysql_query($query);or die("Database query died: " . mysql_error());

Должно быть:

$result = mysql_query($query) or die("Database query died: " . mysql_error());
0 голосов
/ 03 марта 2011

У меня есть некоторые проблемы с тем, что вы делаете запрос, но не оставляете свой код для обратной связи, чтобы продолжить.Например, что если запрос не удался?Вы просто нажимаете?

Вот как я обрабатываю подобные транзакции Ajax (да, от руки!)

$('#read').click(function() {
  $("#div").dialog({        //Shows dialog
    height: 250,
    width: 450,
    modal: true,
buttons: {
   "Cancel": function() {
    $( this ).dialog( "close" );
   },
   "Save": function() {
        $.ajax({
        url: "url.php",                   //
        timeout: 30000,
        type: "POST",
        data: $('#form').serialize(),
        dataType: 'json',
        error: function(XMLHttpRequest, textStatus, errorThrown)  {
            alert("An error has occurred making the request: " + errorThrown)
        },
        success: function(data){                                                        
               $('#updatediv).html(data.stuff);
            src="web/imgs/icons/24deleteB.png"></td>';

        }

        $( this ).dialog( "close" );
   }


    }


   });
});

Теперь URL.php выполнит запрос и вернет json_encodedвернитесь к AJAX, чтобы узнать, была ли транзакция успешной, с помощью функций success / error.Вы можете сделать дополнительные условия в случае успеха, чтобы убедиться, что что-то было сохранено определенным образом или что результат соответствует случаю, который вы хотели сделать, прежде чем что-то делать.В случае успеха я показываю просто простое действие .html внутреннего типа html, но вы можете делать любое количество или множество вещей, например, показать / скрыть, внутренний html и т. Д. Выбор за вами.Также обратите внимание, что я использую диалоги Jquery UI вместо системных диалогов, поэтому вам понадобится Jquery UI, чтобы он выглядел красиво, если бы вы использовали это дословно.Наконец, вместо того, чтобы onclick, обратите внимание, что я использую функциональность .click, предоставляемую Jquery, которая является просто средством для чистки волос.

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