Ajax публикует заметки с определенным идентификатором

0

У меня есть index.php файл, который содержит некоторые данные клиента, каждый клиентский данные имеет уникальный идентификатор. "Create-a-note" -form (используя ajax) отправляет заметку в таблицу mysql и мгновенно публикует примечание к index.php. Проблема в том, что я не могу передать client_id в файл обработки, чтобы все записи отображались на всех клиентах:

index.php

echo "
<div class='note' id='typenote".$clients_id."'> 
<form>*the form*</form>
</div>
<div id="notes"></div>
";

скрипт

$(document).ready(function(){
    function showNote(){
        $.ajax({
          type:"post",
          url:"process.php",
          data:"action=shownotes",
          success:function(data){
                $("#notes").hide().html(data).fadeIn('slow');
          }
     });
 }

 showNote();

 $("#button").click(function(){
    var user=$("#user").val();
    var note=$("#note").val();
    var client_id=$("#client_id").val();

        $.ajax({
          type:"post",
          url:"process.php",
          data:"user="+user+"&note="+note+"&client_id="+client_id+"&action=addnote",
          success:function(data){
            showNote();
          }
        });
 });
});

process.php

    include("connect.php");

    $action=$_POST["action"];

    if($action=="shownotes"){
      $show=mysql_query("Select * from sys_notes order by note_id desc");
    etc...

}
  }
  else if($action=="addnote"){
etc...

ЗДЕСЬ ПРОБЛЕМА... Как получить значение $ client_id

Select * from sys_notes WHERE client_id=$client_is order by note_id desc

в файле process.php, поэтому правильные заметки заполняются в моем showNote() скриптах id (#notes)?

Теги:

3 ответа

2
Лучший ответ

Три вещи:

1 - Никогда не используйте mysql_-функции (никто не должен) использовать mysqli_, если вам нужно или лучше еще взглянуть на PDO

2 - Используйте $ _SESSION global для хранения таких вещей, как user и userID (чтобы они не могли смириться с этим и изменять/отображать данные других пользователей)

3 - для вашей проблемы я вижу, что вы уже отправляете client_id, так почему бы просто не взять ее оттуда?

Надеюсь это поможет

  • 0
    +1 Ударь меня к этому.
  • 0
    3 - правда, но это только тогда, когда я размещаю данные. Первое действие ($ action == "show notes") - покажет опубликованные заметки, когда отправляется форма, client_id отправляется ... Есть ли способ получить идентификатор для $ action == "show notes"?
Показать ещё 1 комментарий
0

Идентификатор клиента не должен отправляться с формой, так как клиент может манипулировать им. Это означает, что один клиент может добавлять примечания для другого клиента, изменяя число в html.

Я бы предположил, что ваш клиент вошел в систему и что идентификатор хранится в сеансе, поэтому вы просто получите его в своем php файле, как (пример):

$_SESSION['client']['id'];
0

Почему вы помещаете строку запроса в data? data хочет массив объектов или вам нужно поместить строку запроса в url.

    $.ajax({
      type:"post",
      url:"process.php",
      data:{user: user, note: note, client_id: client_id, action: "addnote"},
      success:function(data){
        showNote();
      }
    });

или (метод2)

    $.ajax({
      type:"post",
      url:"process.php?user="+user+"&note="+note+"&client_id="+client_id+"&action=addnote",
      success:function(data){
        showNote();
      }
    });

то вы можете получить доступ к client_id с помощью $_POST['client_id'] или (method2) с $_GET['client_id']

  • 0
    1-й метод работает для публикации! Спасибо, но это только тогда, когда я размещаю данные. Первое действие ($ action == "show notes") - это отображение опубликованных заметок, пока форма отправляется, client_id отправляется ... Есть ли способ перевести client_id в $ action == "show notes"?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню