2015-04-17 3 views
1

Я пытаюсь получить данные из HTML таблицы, на основании которых установлен флажокзначения вставки в базу данных с помощью JavaScript и PHP

function updtBask() { 

if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

var table = document.getElementById("mytable"); 
var chkBox = document.getElementById("1"); 
//for (var i = 1, row; row = table.rows[i].cells[4]; i++) { 
    if (chkBox.checked) { 
     var imgOne = document.getElementById("mytable").rows[1].cells[0].innerHTML; 
     var prcOne = document.getElementById("mytable").rows[1].cells[1].innerHTML; 
     var nameOne = document.getElementById("mytable").rows[1].cells[2].innerHTML; 
     var descOne = document.getElementById("mytable").rows[1].cells[3].innerHTML; 
    } 

затем отправить эти данные в PHP-файл, который затем вставляет эти значения в базу данных.

xmlhttp.open("POST","updateBasket.php"+{imgOne :imgOne, prcOne: prcOne, nameOne: nameOne, descOne: descOne},true); 
xmlhttp.send(); 

Мой PHP выглядит следующим образом

<?php 
//create connection 
$con = mysqli_connect("csmysql.cs.cf.ac.uk", "c1427641", "adnog9","c1427641"); 
//get variables from javascript 
$one = $_POST["imgOne"]; 
$two = $_POST["prcOne"]; 
$three =$_POST["nameOne"]; 
$four = $_POST["descOne"]; 

// command to execute 
$command= "INSERT INTO basket (image, price, name, description) VALUES ('$one', '$two', '$three', '$four')" 
//execute command 
$result = mysqli_query($con, $command) 

//close connection 
mysql_close($con) 
?> 

Я новичок в JavaScript, чтобы я мог быть совершенно неправильно здесь.

+0

В чем проблема? – progsource

+0

Какие ошибки вы получаете или ответ? Также вы должны добавить некоторую защиту от SQL Injection. Этот код будет уязвим. – Twisty

+0

Он не вставляет значения в таблицу, которая должна быть – FailedWolfhound

ответ

1

Пост неверен. Код должен выглядеть следующим образом:

var id = "xyz"; 
var value = 123; 

var xmlhttp = new XMLHttpRequest(); 
xmlhttp.open('POST', 'updateBasket.php'); 
xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState==4) { 
     if(xmlhttp.status==200) { 
      alert("good"); 
     } 
    } 
}; 
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
xmlhttp.send("userid=" + encodeURIComponent(id) + "&value=" + encodeURIComponent(value)); 
+0

Так что, используя это с моими переменными, Работа? – FailedWolfhound

+0

Если серверная часть верна ... – epascarello

+0

Доходит до предупреждения, я предполагаю, что тот факт, что он не вставляет в базу данных, связан с следующим битом – FailedWolfhound

-1

Так в чем проблема? Если вам интересно, как позвонить updtBask(), вы можете сделать это с помощью кнопки: <button onclick='updtBask()'>Update</button>

+0

У меня есть кнопка, вызывающая ее, но по какой-то причине данные, которые я хочу, не вставлены в таблицу базы данных – FailedWolfhound

+0

Я думаю, что вы правильно используя xmlhttp. См. Здесь «post» http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp – CodeOcelot

+0

Да, это то, за чем я следовал, но кто-то из вышеперечисленных сказал, что мое использование POST было неправильным – FailedWolfhound

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