Задача примитивна, нужна форма с добавлением полей, кнопкой удалить, добавить (пока без никаких проверок, вопросов и т.п.), подгружается ajax-ом
Хочется что б не сильно закидали камнями когда буду показывать, ну хотя бы не насмерть)
По этому и возник вопрос, что из этого совсем плохо?
Или что из плохого нужно исправить в первую очередь?
Как понимаете, вопрос возник из-за отсутствия нормального опыта, по этому буду крайне признателен объективным советам и комментам (если нетерпеж, то можно и потролить =) )
Если по сути:
functions.php
function connect_db(){
require $_SERVER["DOCUMENT_ROOT"] . '/config/config.php';
$link = mysqli_connect($host, $name, $password, $db);
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
return $link;
}
function add_user_query($arr_user){
$link = connect_db();
$query = "INSERT INTO users VALUES (NULL,
'".$arr_user['first_name']."',
'".$arr_user['second_name']."',
'".$arr_user['email']."')";
mysqli_query($link, $query);
mysqli_close($link);
}
function dell_user_query($arr_user){
$link = connect_db();
mysqli_query($link, "DELETE FROM users WHERE `email` = '".$arr_user['email']."'");
mysqli_close($link);
}
function load_result(){
$link = connect_db();
$result = mysqli_query($link, "SELECT first_name, second_name, email FROM users");
$resultArr = mysqli_fetch_all($result, MYSQLI_ASSOC);
mysqli_close($link);
return $resultArr;
}
function print_field($result){
$number = 0;
foreach($result as $key => $val)
{?>
<div class="row">
<p id="number"><?= ++$number ?></p>
<p id="first_name"><?= $result[$key]['first_name'] ?></p>
<p id="second_name"><?= $result[$key]['second_name'] ?></p>
<p id="email"><?= $result[$key]['email'] ?></p>
<p class="control">
<span id="del">del</span>
</p>
</div>
<?}
}
proc.php
<?php
require 'functions.php';
$action = $_POST['action'];
$first_name = $_POST['first_name'];
$second_name = $_POST['second_name'];
$email = $_POST['email'];
$arr_user = ['first_name' => $first_name,
'second_name' => $second_name,
'email' => $email
];
$arr = ['first_name', 'second_name', 'email'];
switch($action){
case 'add':
add_user_query($arr_user);
break;
case 'update':
// update_user_query($arr_user);
break;
case 'dell':
dell_user_query($arr_user);
break;
}
$result = load_result();
print_field($result);
?>
и js
$(document).ready(function(){
load_table();
$('.add_user').bind('click', function(){
$('.fields').show();
$('.add_user').css('display', 'none');
var button_save = '<input type="button" name="save_user" class="save_user" value="Save user" />';
var button_cansel = '<input type="button" name="cansel" class="cansel" value="Cansel" />';
$(button_save).appendTo('.fields');
$(button_cansel).appendTo('.fields');
});
$('.add-field').on('click','.cansel', function(){
$('.fields').hide();
$('.save_user').hide();
$('.cansel').hide();
$('.add_user').css('display', 'block');
});
$('.add-field').on('click','.save_user', function(){
var first_name = $('.first_name').val();
var second_name = $('.second_name').val();
var email = $('.email').val();
$.ajax({
type: 'POST',
url: "inc/proc.php",
data: "action=add&first_name="+first_name+"&second_name="+second_name+"&email="+email,
success: update_result
});
});
$('.table').on('click','#del', function(){
var email = $(this).closest(".row").find("#email").text();
$.ajax({
type: 'POST',
url: "inc/proc.php",
data: "action=dell&email="+email,
success: update_result
});
});
});
function load_table(action){
$.ajax({
type: 'POST',
url: "inc/proc.php",
cache: false,
success: loadResult
});
}
function loadResult(data){
$(".table").append(data);
}
function update_result(data){
$("div .row").remove();
$(".table").append(data);
}
function confirm_delete(){
confirm("Delete?")
}
function show_popup(){
}
function close_popup(){
var popup = document.getElementById('popup');
var overlay = document.getElementById('overlay');
popup.style.display = 'none';
overlay.style.display = 'none';
}
Все это добро(и еще немного) лежит тут:
https://github.com/v-lavr/table_tz