Ajax отправка атрибутов

223
23 апреля 2017, 01:38

Собираю атрибуты с элемента:

var attributes = elem_name.attributes;
text = ''
for (var key in attributes) {
  /* Выбираем именно html-атрибуты */
  if (attributes[key].nodeName) {
    text += attributes[key].nodeName + ':' + attributes[key].nodeValue + ','
  }
}

Пытаюсь отправить:

$.ajax({
  type: "GET",
  url: "index.php",
  data: text
}).done(function( data ) {
  //
});

При просмотре в консоле обнаруживается двоеточие в конце строки с отправляемыми атрибутами: сlass:elem,id:9,: Проблема не в запятой в конце, ее я пробовал удалять.

На сервере все стандартно:

$сlass= $_GET['сlass'];
$id= $_GET['id'];
$con = mysqli_connect('bla','bla','bla','bla');
$result = mysqli_query ($con,"INSERT INTO bla (class, id) VALUES ('$class','$id')");

При отправке данных в таблице появляется новая строка, но без значений

Answer 1

Вы неправильно передаете параметры(query):

Стандарт

var1=val1&var2=val2&var3=val3

У вас

var1:val1,var2:val2,var3:val3,

https://en.wikipedia.org/wiki/Uniform_Resource_Identifier http://stackoverflow.com/questions/111529/how-to-create-query-parameters-in-javascript

for (var key in attributes) {
  /* Выбираем именно html-атрибуты */
  if (attributes[key].nodeName) {
    text += attributes[key].nodeName + ':' + attributes[key].nodeValue + ','
  }
}

Станет

var ret = [];
for (var key in attributes) {
  /* Выбираем именно html-атрибуты */
  if (attributes[key].nodeName) {
    ret.push(encodeURIComponent(attributes[key].nodeName) + '=' + encodeURIComponent(attributes[key].nodeValue));
  }
}
var text = ret.join('&');

ПС

jquery.ajax() для параметра data может принять обычный массив/объект и всё за вас отформатировать.

https://api.jquery.com/jQuery.ajax

$.ajax({
  type: "GET",
  url: "index.php",
  data: {"var1":"val1", "var2": "val2", "var4": "val4"}
}).done(function( data ) {
  //
});

ППС

У вас в коде SQLInjection

https://en.wikipedia.org/wiki/SQL_injection

https://phpdelusions.net/pdo

https://phpdelusions.net/pdo/sql_injection_example

READ ALSO
Добавить шрифт в imagettftext без создания ttf файла

Добавить шрифт в imagettftext без создания ttf файла

Здравствуйте! Проблема такая: в функции imagettftext() есть параметр $font который определяет шрифтЯ хочу использовать довольно попсовый Arial, и при...

269
Динамический парсинг на PHP (phpQuery)

Динамический парсинг на PHP (phpQuery)

Как парсить информацию внутри ссылок на странице? (скрипт сам должен перейти по всем ссылкам на той странице, которую я указал, и спарсить...

353
MySQL AS как правильно прочитать данные

MySQL AS как правильно прочитать данные

Доброго времени сутокСтолкнулся с таким вопросов

206
php while из двух параллельных запросов?

php while из двух параллельных запросов?

Всем здравствуйте уважаемые программистыВот вопрос: Я на php делаю личные сообщения между пользователями но есть одно но

214