2015-05-12 3 views
0

У меня есть таблица, в которую я пытаюсь добавить inline-edit, но я действительно новичок в ajax. Я подозреваю, что что-то не так с dataString моего кода Ajax, но я не могу его найти. Сам код работает, но у меня возникают проблемы с отправкой данных.Публикация inline-table на sql

Прошу прощения, если этот вопрос задан раньше, я действительно подчеркиваю это. Если кто-нибудь скажет мне, что мне делать, я буду очень признателен.

Database

rowid | Person 

4  | mike 

12 | peterson 

PHP

//Every row in the sql table has an row id 
<php $id = $row['rowid']; ?> 

<tr id="<?php echo $id ?>" class="tredit> 
    <td> 
     <span id="person_<?php echo $id ?>" class="text"><?php echo $row["Person"] ?></span> 
     <input type="text" class="ip" id="person_ip_<?php echo $id ?>" value="<?php echo $row["Person"] ?>"> 
    </td> 
</tr> 

Ajax

$(document).ready(function(){ 
    $(".tredit").click(function(){ 
     var ID=$(this).attr('id'); 

     $("#person_"+ID).hide(); 
     $("#person_ip_"+ID).show(); 
    }).change(function(){ 
     var ID=$(this).attr('id'); 
     var first=$("#person_ip_"+ID).val(); 
     var dataString = 'id='+ ID +'&person='+first; 
     //alert(dataString); 
     $("#person_"+ID).html('<img src="load.gif" />'); 

     if(first.length > 0){ 
      $.ajax({ 
       type: "POST", 
       url: "post_table.php", 
       data: dataString, 
       cache: false, 
       success: function(html){ 
        $("#klant_"+ID).html(first); 
       } 
      }); 
     }else{ 
      alert('Voer iets in'); 
     } 
    }); 
}); 

post_t able.php

<?php 
    $person= $_POST['person']; 
    $id = $_POST['id']; 
    //This is where I get stuck, I don't know how to extract data from the dataString to insert into an update 
    $query = "update people set Person='$person' where id='$id'"; 
    mysql_query($query, $con); 
?> 
+0

в PHP, ваш 'dataString' бы получить доступ с помощью' $ _POST [ 'идентификатор'] 'и' $ _POST [ 'человек'] '. обратите внимание, что вы захотите дезинформировать эти данные для предотвращения внедрения SQL. – Sean

+0

также, если вы делаете строку для данных, вам нужно '&' между вашими параметрами - var dataString = 'id =' + ID + '& person =' + first; ', как если бы это был URL-адрес – Sean

ответ

0

О получении данных, указанный в функции пост(), посмотрите на Jquery официальной документации:

https://api.jquery.com/jquery.post/

Глядишь есть формат доступны, которые позволяют указать имена Params:

{ name: "John", time: "2pm" } 
+0

Должен ли я сделать '$ .post();' для этого или объединить это как-то с '$ .ajax();'? Кроме того, разве я не собираю эти данные в моей 'dataString'? – Vasco

+0

Строка данных OPs 'var dataString = 'id =' + ID + '& person =' + first;' так же справедливо для использования с использованием данных объекта: {id: ID, person: first}, 'http://api.jquery.com/jquery.ajax/ 'data Тип: PlainObject или String или Array - данные для отправки на сервер. Он преобразуется в строку запроса, если не является уже строкой. Поэтому на самом деле ваш объект преобразуется в строку запроса так же, как в настоящее время использует OP. – Sean

+0

@Sean о, ладно спасибо, хорошо знать – Cr3aHal0

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