2013-10-25 3 views
0

Я создаю планировщик проекта, где это работает очень похоже на список покупок, все работает нормально на стороне клиента; однако, когда я пытаюсь добавить новый добавленный элемент в базу данных, он не работает. все остальное добавляется в базу данных, как в id, так и в дату, но не в созданном новом элементе, который я сохраняю в виде текста. Ошибка, которую php дает мне, заключается в том, что $ _POST [elem] не имеет значения.Элементы не добавляются в базу данных

Jquery/Ajax

$(document).ready(function(){ 
// GLOABL VARIABLES 
var project  = ""; 
var div   = ""; 
var categoryDiv = ""; 
var category = ""; 

// Adding a project 
$('.project-btn').click(function(e){ 
    e.preventDefault(); 

    //grab the user input for the new project 
    var project = $('.project-val').val(); 

    //Add the project to the list 
    $('<li></li>').addClass(project).appendTo('.project-list'); 
    $('<a></a>').attr("href",project).text(project).appendTo('li.'+project); 

    // create the div where the categories will go 
    $('<div></div>').attr("id",project).appendTo('.category-wrapper'); 
    // hide the div untill it is called upon 
    $('div#'+project).fadeOut(function(){ 
     $('<h1></h1>').text(project).css("text-align","center").appendTo('div#'+project); 
     // add the input for the category div 
     $('<input>').attr("type","text").addClass('category-val').appendTo('div#'+project); 
     $('<input>').attr("type","submit").attr("value","Add Category").addClass("category-btn").appendTo('div#'+project); 
     // add the back button 
     $('<p></p>').text("back").addClass('category-back').css("cursor","pointer").appendTo('div#'+project); 
     // add the ul 
     $('<ul></ul>').attr("class","category-list").appendTo('div#'+project); 
    }); 

    // clear the input search 
    $('.project-val').val(''); 

    // add to the database 
    var elem={}; 
    elem ='<li class="'+project+'">'+project+'</li>'; 

    $.ajax({ 

    url: 'project_list.php', 
    data: elem, 
    type: 'POST', 
    success: function(response) 
    { 
     alert("success"); 
    } 

    });//end of ajax call 
}); 
}); 

PHP:

<?php 
include 'inc/connect.php'; 

$string = $_POST['elem']; 


mysqli_query($con, "INSERT INTO `project_list` (string) VALUES ('$string')"); 

mysqli_close($con); 

?> 
+0

@ Fred-II- thxs, но это не мой вопрос, проблема в том, что PHP говорит, что переменный эль пуст – swsa

+0

Я удалил свой комментарий, понял, что это не то, что вам нужно. –

ответ

2

данные должны быть 'эль = "+ эль', here is an example.

Ваш код также уязвим для SQL Инъекции, проверить это, чтобы предотвратить их: How can I prevent SQL injection in PHP?

+0

спасибо, что вы сказали, что так должно быть? $ string = $ _POST ['"elem =" + elem']; – swsa

+0

Нет - на ваш запрос Ajax, сделайте это так: data: "elem =" + elem – 1n9i9c7om

+0

вы мой друг отличный человек – swsa

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