Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Удаление записи на главной странице

Всем привет
Есть небольшая проблема
После удаления последней записи на главной странице появляется надпись "Nothing Found", есть ли какой способ избавиться и от "Nothing Found"? Никакие записи и комментарии просто напросто ненужны на главной странице. Тема называется Minamaze, но и на других темах где есть комментарии наблюдал такое

Вот как выглядит с записью:


Вот как выглядит после удаления записи:


Буду благодарен за любую помощь!
Ответ: Спасибо большое!
Сам почему-то не догадался пойти таким способом, теперь запомню и буду пользоватся этим всегда если будут проблемы.
Все оказалось настолько простым... В шаблоне в index.php была функция что если нет записей то вылезает весь этот блок с "Nothing found". Еще раз спасибо!
Вопрос: Ext.ux.ajax.SimManager - добавление и удаление записей

А эта штука Ext.ux.ajax.SimManager почему не поддерживает такие вещи как добавление записей, удаление, синхронизация хранилища?

по факту пока что только запрос GET нормально отрабатывает
вроде сортировку и группировку должен поддерживать, судя по внутренностям, но это я не проверял
Ответ:
Цитата:
Потому что REST интерфейсы - это хак на глюке и костылём погоняет.
я понял о чем вы - REST слабостандартизирован, да?
Вопрос: Ajax работает на первом элементе

Вечер добрый, нужно натолкнуть на мысль, ситуация такая:
Выводится несколько пользователей, нужно сделать удаление через ajax. Сделал.

Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
$('#deletefriend').click(function() {
    var friendid = $(this).data('friendid');
    var action = $(this).data('action');
 
    $.post(document.location.href, {action: action, friendid: friendid}, function(data) {         
document.getElementById("deletefriend").remove();
document.getElementById('actions').innerHTML = '<span class="added">Removed</span>';
    })
  })
Код, работает, но для того чтобы удалить второго пользователя, нужно сначала удалить первого и обновить страницу, без этого никак (при этом теряется вся польза ajax-запросов)
Ответ: конечно, еще один вопрос:
Код Javascript
1
2
3
4
5
6
7
$('.post-delete').click(function() {
    var postid = $(this).data('postid');
    var action = $(this).data('action');
    $.post(document.location.href, {action: action, postid: postid}, function(data) { 
$(this).parents('.wall-post').remove();  
    })
  })
сделал так, все данные через ajax передаются, но remove элемента не работает, если же убрать:

Код Javascript
1
    $.post(document.location.href, {action: action, postid: postid}, function(data) { 
тогда remove работает, но разумеется данные не передаются
Вопрос: Реализация в AJAX

Я пытаюсь это реализовать в AJAX
У меня есть таблица данные которой вытягиваю из базы.
<div class="block-content collapse in">
     <div id="tab" class="span12">
        <table cellpadding="0" cellspacing="0" border="0" class="table tablestriped table-bordered" id="example">
		<thead>
			<tr>
			        <th>Регион</th>
				<th>Школа</th>
 				<th>школа</th>
				<th>Персона</th>
				<th>Учитель</th>
				<th>Контакт персона</th>
				<th>Номер</th>
				<th>Эл-почта</th>
				<th>Дата</th>
				<th>Кол-во ночующих</th>
				<th>*Выборка</th>
			</tr>
		</thead>
		<tbody>
			<?php
				$connect=mysqli_connect ("localhost", "darius","qwerty", "competition") or die ("Could not connect to mysql!");
				$query=mysqli_query($connect, "SELECT * FROM registration_page WHERE class LIKE '9%' ORDER BY registration_page.member ");
				while ($reg_list=mysqli_fetch_array($query))
				{
					if(empty($reg_list['overnight_period']))
					{
						$reg_list['overnight_period']="-";
					}
					if(empty($reg_list['number_of_overnight']))
					{
						$reg_list['number_of_overnight']="-";
					}
					echo '<tr>';
					echo '<td>' .$reg_list['region']. '</td>';
					echo '<td>' . $reg_list['school']. '</td>';
					echo '<td>' . $reg_list['class'] . '</td>';
					echo '<td>' . $reg_list['member'] . '</td>';
					echo '<td>' . $reg_list['teacher'] . '</td>';
					echo '<td>' . $reg_list['cont_member']. '</td>';
					echo '<td>' . $reg_list['number_ph'] . '</td>';
					echo '<td>' . $reg_list['email'] . '</td>';
					echo '<td>' .$reg_list['overnight_period']. '</td>';
					echo '<td>' .$reg_list['number_of_overnight']. '</td>';
					echo '<td><input type="checkbox" name="'.$reg_list['id'].'" form="form1"></td>';
					echo '</tr>';
				}
				?>
		</tbody>
	</table>
	<form id="form1" action="include/delete.php">
	        <input type="sumbit" value="Удалить">
	</form>
      </div>
 </div>


в поле "*Выборка" я создаю checkbox'ы для того чтобы потом помечать кого хочу удалить из таблицы.
Потом работаю с этим checkbox'ами через GET в php скрипте:
//delete.php

<?php
header('Content-Type: text/html; charset=utf-8');
$connect=mysqli_connect ("localhost", "darius","qwerty", "competition") or die ("Could not connect to mysql!");


if(empty($_GET))
{
	echo 'Ни один ученик не был выбран!';
}
else
{
	$seccess=0;
	foreach ($_GET as $key=>$value)
	{
		if($query=mysqli_query($connect,"DELETE FROM registration_page WHERE id='$key'"))
		{
			$seccess++;
		}
		else
		{
			$error=true;
			break;
		}
	}

	if($error)
	{
		echo 'Ошибка при удалении!<br>Успешных удалений: '.$seccess;
	}
	else
	{
		echo 'Элементы были удалены!<br>Успешных удалений: '.$seccess;
	}
}

?>
<meta http-equiv="refresh" content="2;URL=/admin/">


Это конечно всё устарело, пишу как в каменном веке, с обновлениям страниц и обратной переадресацией))
По этому и хочу это всё посадить на AJAX.
Вот мои попытки:
В форме атрибут тип тэга input прописываю как button, добавляю id="smt"
<form id="form1" action="include/delete.php">
	<input type="button" value="Dzest" id="smt">
</form>


так же div'у с классом span12 добавляю id="tab"
<div class="block-content collapse in">
     <div id="tab" class="span12">
        <table cellpadding="0" cellspacing="0" border="0" class="table tablestriped table-bordered" id="example">
		<thead>
			<tr>
			        ....
			</tr>
		</thead>
		<tbody>
			<?php
				....
			?>
		</tbody>
	</table>
	<form id="form1" action="include/delete.php">
	        ....
	</form>
      </div>
 </div>


Далее прописываю JQuery скрипт:
$(document).ready(function() 
			{ 
				var form=$("#form1");
				$("#smt").click(function()
				{
					$.ajax(
					{
						type:"POST",
						url:form.attr("action"),
						data:$("#form1 input").serialize(),
						success: function(html)
						{
							$("#tab").html(html);  
						}
					});
					return false;
				});
			});


Я так понимаю что у меня ничего не происходит так как строчка
data:$("#form1 input").serialize(),
должна забирать значения input'ов из тэга value. Но моя обработка нажатых checkbox'ов работает с тэгом name и значение передаётся в виде ON
Тоесть в адресной строке будет: ...delete.php?1=ON

Может кто знает как реализовать подобное в AJAX или может посоветуете как-то подругому выбирать элементы в таблице, и удалять их без перезагрузки страницы?
Зарание спасибо!
Ответ: Целый месяц был занят другими не менее важными делами по учёбе и буквально несколько дней назад вернулся к этой работе.

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

Я воспользовался не которыми вашими идеями и сделал всё по другому. Разобрался как работает ajax в jquery запросах, разобрался в json'е, узнал кое-что новое новое в mysql запросах. Полностью переосмыслил структуру своей базы данных.

Так вот. Мне нужно было при заходе на страницу, уже видеть таблицу с данными полученных из базы. При этом в последнем поле должны создаваться checkbox'ы. Выглядит у меня это так:


А вывод я сделал таким:
index.php
<table class="table table-striped table-bordered table-hover" cellpadding="0" cellspacing="0" border="0" id="example">
	<thead>
		<tr>
			<th>#</th>
			<th>Novads</th>
			<th>Skola</th>
			<th>Klase</th>
			<th>Skolnieks</th>
			<th>Skolotajs</th>
			<th>Skolnieka telefons</th>
			<th>Skolotaja telefons</th>
			<th>e-mail</th>
			<th>Laiks</th>
			<th>nakts sk</th>
			<th>*Izvelne</th>
		</tr>
	</thead>
	<tbody id="rl9kl">

<?php
$query=mysqli_query($connect, "SELECT rl.id, CONCAT(rl.vards,' ',rl.uzvards) AS skolnieks, rl.id_nov, rl.skola, rl.klase, rl.skolotajs, rl.skolnieka_telefons, 
												rl.skolotaja_telefons, rl.skolnieka_email, rl.naktsmitne_laiks, rl.naksnotaju_sk, n.id_nov, n.nosaukums
FROM registracijas_lapa_9kl rl, novadi n WHERE rl.id_nov=n.id_nov ORDER BY rl.vards ");
while ($reg_list=mysqli_fetch_array($query))
{
	if(empty($reg_list['naktsmitne_laiks']))
	{
		$reg_list['naktsmitne_laiks']="-";
	}
	if(empty($reg_list['naksnotaju_sk']))
	{
		$reg_list['naksnotaju_sk']="-";
	}
	echo '<tr>';
        echo '<td>'.$reg_list['id'].'</td>';
	echo '<td>' .$reg_list['nosaukums']. '</td>';
	echo '<td>' . $reg_list['skola']. '</td>';
	echo '<td>' . $reg_list['klase'] . '</td>';
	echo '<td>' . $reg_list['skolnieks'] . '</td>';
	echo '<td>' . $reg_list['skolotajs'] . '</td>';
	echo '<td>' . $reg_list['skolnieka_telefons']. '</td>';
	echo '<td>' . $reg_list['skolotaja_telefons'] . '</td>';
	echo '<td>' . $reg_list['skolnieka_email'] . '</td>';
	echo '<td>' .$reg_list['naktsmitne_laiks']. '</td>';
	echo '<td>' .$reg_list['naksnotaju_sk']. '</td>';
	echo '<td><input type="checkbox" value="'.$reg_list['id'].'" name="id[]" form="form1"></td>';
	echo '</tr>';
}
?>

</tbody>
</table>
<form id="form1" action="ajax/delete.php" method="post">
	<input class="btn btn-primary" type="submit" value="Удалить выбранные записи">
</form>

Если кому не понятно, я использовал латышские названия переменных и названия полей в таблицах, так как сам из Латвии и моя курсовая работа тоже должна быть на соответствующем языке, увы.
вот перевод:
vards - имя
uzvards - фамилия
skolnieks - школьник
skolotajs - учитель
novads - край/регион
nosaukums - название
nasknotaju_sk - кол-во начюющих
nakstmitnes_laiks - дата ночевки (до какого числа)

Далее по нажатию по кнопке "Удалить выбранные записи" должны удаляться из таблицы те записи где я расставил checkbox'ы.

Реализовал я это так:
index.php
$(document).ready(function() 
{
	$('#form1').ajaxForm(
	{//////////////////////////таблица 9 классов
		success: function(data)
			{
				if(data)
				{
					$('#rl9kl').html(data);
				}
				else
				{
					alert("Ни одна запись не была выбрана!");
				}
			}		
	}); 
});

Я решил использовать jquery form plugin

Далее это всё отправляется на обработку php скрипту.
delete.php
<?php
header('Content-Type: text/html; charset=utf-8');
include_once ($_SERVER["DOCUMENT_ROOT"] . "/include/connect.php");

if($_POST['id'])
{
	$id=implode(',', $_POST['id']);
	
	$q=mysqli_query($connect, "DELETE FROM registracijas_lapa_9kl WHERE id IN($id)");

	//вывод таблицы списка зарегистрированных учиников 9-х классов
	$query=mysqli_query($connect, "SELECT rl.id, CONCAT(rl.vards,' ',rl.uzvards) AS skolnieks, rl.id_nov, rl.skola, rl.klase,rl.skolotajs, rl.skolnieka_telefons, 
	rl.skolotaja_telefons, rl.skolnieka_email, rl.naktsmitne_laiks, rl.naksnotaju_sk, n.id_nov, n.nosaukums
	FROM registracijas_lapa_9kl rl, novadi n WHERE rl.id_nov=n.id_nov ORDER BY rl.id ");
	while ($reg_list=mysqli_fetch_array($query))
	{
		if(empty($reg_list['naktsmitne_laiks']))
		{
			$reg_list['naktsmitne_laiks']="-";
		}
		if(empty($reg_list['naksnotaju_sk']))
		{
			$reg_list['naksnotaju_sk']="-";
		}
		echo '<tr>';
		echo '<td>'.$reg_list['id'].'</td>';
		echo '<td>' .$reg_list['nosaukums']. '</td>';
		echo '<td>' . $reg_list['skola']. '</td>';
		echo '<td>' . $reg_list['klase'] . '</td>';
		echo '<td>' . $reg_list['skolnieks'] . '</td>';
		echo '<td>' . $reg_list['skolotajs'] . '</td>';
		echo '<td>' . $reg_list['skolnieka_telefons']. '</td>';
		echo '<td>' . $reg_list['skolotaja_telefons'] . '</td>';
		echo '<td>' . $reg_list['skolnieka_email'] . '</td>';
		echo '<td>' .$reg_list['naktsmitne_laiks']. '</td>';
		echo '<td>' .$reg_list['naksnotaju_sk']. '</td>';
		echo '<td class="checkbox_td"><input type="checkbox" value="'.$reg_list['id'].'" name="id[]" form="form1"></td>';
		echo '</tr>';
	}
}
?>


Так и не понял какой результат должна принимать в себя переменная $del из вот этой строчке.
$del = implode(',', array_diff(array_map('intval', $_POST['del']), [0]))

Хоть даже перечитал значение каждой функции в manual'e по PHP. Сервер выдал ошибку в синтаксисе. В итоге мне понадобилась всего одна функция implode.
Чтобы построить mysql запрос :
$id=implode(',', $_POST['id']);
$q=mysqli_query($connect, "DELETE FROM registracijas_lapa_9kl WHERE id IN($id)");

Но всё же хочу сказать Вам спасибо за Вашу помощь, без неё я бы сейчас дольше сидел над реализацией данной системы. Мне очень пригодились такие идеи как например значение атрибута name="id[]" у тэга input. Я до этого не знал что можно таким образом передавать php скрипту массивы.
Возможно моя теперешняя система имеет свои недочёты и не блещет логичностью. Буду рад выслушать предложения по её улучшению.
Естественно это ещё всё сыро выглядит и я ещё займусь всякими украшательствами типа bootstrap уведомлений и jquery smoke plugin.
Спасибо за внимание и за помощь
Вопрос: вывести результат AJAX в div с динамическим ид

Доброго времени суток.

Пытаюсь реализовать систему рейтинга для статей на сайте. Статьи выводятся в цикле, и для каждой статьи есть своя кнопка "лайк". Делаю все это чудо на связке AJAX+PHP. Т.к статьи выводятся в цикле то что бы не городить дубли одного и того же скрипта на кнопку посадил onClik с вызовом функции, которая должна будет обработать запрос и присвоить рейтинг. Вот сам код:

$(".urlparam").click(function () {
    	var id = $(this).data('id');
    	
		$.ajax({
		  type: "POST",
		  url: "/like.php", // Обработчик
		  data: "id="+id,// Отправляем id
		  dataType: "html",
		  cache: false,
		  success: function(data) {  
		  // Проверяем что ответил нам обработчик, если false значит пользователь уже голосовал. И выводим сообщение.
		  if (data == 'false')
		  {
		    alert('Вы уже голосовали!');
		  }  
		   else
		  {
		    $(".likeborder").html(data); // Если пользователь не голосовал, то помещаем в параграф общее кол-во голосов.
		  }
		 
		}
		});


	});


переменную id в начале кода получаем из кнопки (передаем ид материала, к которому голосуем). После всех манипуляций скрипт в блоке с классом .likeborder выводит результат. Сам скрипт работает но есесн когда в цикле выводим записи то голосуем за запись номер 1 а рейтинг обновляется у всех потому что у всех у них есть блок с классом .likeborder.

Я думал реализовать данную проблему таким образом : в цикле к каждому классу присвоить ид статьи а в скрипте так же переопределить блок, в котором будет обновляться рейтинг. Но при попытке внести изменения в скрипт :

Было $(".likeborder").html(data); стало $(".likeborder"+id).html(data);

Скрипт не выводит новый рейтинг в блоке с классом likeborder"+id
Дела. alert(); - пишет что ид undefined. На сколько я понимаю ид так и не передался в аякс и не переопределил класс в котором будет выводится результат работы.

Вопрос - как мне передать ид записи и переопределить класс в котором будет выведен результат?

Прошу прощение за быдло-код - я не знаток к сожалению в JS , только начинаю изучать многое.
Ответ: voron121,
Где у Вас у .urlparam атрибут data-id ?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Untitled</title>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(".urlparam").on("click",function () {
	var id = $(this).data('num');
	$.ajax({
		type: "POST",
		url: "/like.php",
		data: {id:id},
		dataType: "html",
		cache: false,
		success: function(data) {  
			if (data == 'false') {
				alert('Вы уже голосовали!');
			} else {
				$(".likeborder"+id).html(data); 
			}
		 
		}
	});
});
</script>
</head>

<body>

  <span class="likeborder1">Like-</span>
  <a href="#" class="urlparam" data-num="1" data-text="text">Like</a>

  <span class="likeborder2">Like-</span>
  <a href="#" class="urlparam" data-num="2" data-text="text">Like</a>

  <span class="likeborder3">Like-</span>
  <a href="#" class="urlparam" data-num="3" data-text="text">Like</a>

</body>
Вопрос: Ajax с jQuery, без jQuery или еще как-то?

Помогите, пож., встать на путь истинный.

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

Форумы читал, идея понятна, но часто попадались материалы, написанные 5-10 лет назад. Не хотелось бы пользоваться архаичными методами. Хотелось бы понять, что сейчас перспективно на ближайшие пару лет.

Затык естественно с ajax. Вообще не знаю, что с ним делать.

С одной стороны, пишут, что jQuery для чайников лучше всего подходит.
"Здесь нужен AJAX. Его, кстати, очень легко использовать в jQuery." (дата - сентябрь 2010 года)

С другой стороны, тест страницы инструментами Google выдает требование убрать подальше все скрипты, а jQuery занимает около 80кБ.
Здесь например человек пишет, что ajax можно использовать и без jQuery и ссылается на (а там дата 2007 год).

Сайт делаю под смартфоны.

В общем какими инструментами пользоваться?
Ответ: Ajax и в африке Ajax. Ничего в нём сложного нет. Это тот же самый запрос к серверу как и при обычном открытии в браузере(GET) или отправке формы(POST), просто делается скриптом, а не человеком, и ответ "выводится" не в браузер, а в переменную.
Информация с вполне подойдёт, там конечно есть пара строк для поддержки старых ie но это не принципиально.
Вопрос: ajax не возвращает json данные

Добрый день!
Помогите, у меня ajax не возвращает json данные

sample.js
$(function() {

    $.ajax({
        type: "GET",
        dataType: 'json',
        url: "/residents/index.php",
        success:function(data){
	         console.debug(data);
                    console.debug(data);
                    alert(data);
	        }
    }).done(function(resident) {
        resident.unshift({ id: "0", name: "" });
        	   	
                $("#jsGrid").jsGrid({
                    height: "70%",
                    width: "100%",//100%
                    selecting: true,
                    filtering: true,
                    editing: true,
                    sorting: false,
                    paging: true,
                    autoload: true,
                    pageSize: 15,
                    pageButtonCount: 5,
                    controller: {
                    loadData: function(filter) {
                    return $.ajax({
                        type: "GET",
                        url: "/residents/",
                        data: filter
                                 });
                },
                insertItem: function(item) {
                    return $.ajax({
                        type: "POST",
                        url: "/residents/",
                        data: item
                    });
                },
                updateItem: function(item) {
                    return $.ajax({
                        type: "PUT",
                        url: "/residents/",
                        data: item
                    });
                },
                deleteItem: function(item) {
                    return $.ajax({
                        type: "DELETE",
                        url: "/residents/",
                        data: item
                    });
                                          }
                    },
           fields: [
                { name: "id", title: "id", type: "text", width: 150 },
                { name: "county", title: "Округ", type: "number", width: 50, filtering: false },
                { name: "dvk", title: "ДВК", type: "text", width: 200 },
                { name: "surname", type: "text", title: "Is Married", filtering: false },
                { type: "control" }
            ]
            });
           });//
        });


index.php
<?php
include "../models/ResidentsRepository.php";
$config = include("../db/config.php");
$db = new PDO($config["db"], $config["username"], $config["password"]);
$residents = new ResidentsRepository($db);
switch($_SERVER["REQUEST_METHOD"]) {
    case "GET":
     $result = $residents->getAllNo();
     break;
        
    case "POST":
        $result = $residents->insert(array(
            "name" => $_POST["name"],
            "age" => intval($_POST["age"]),
            "address" => $_POST["address"],
            "married" => $_POST["married"] === "true" ? 1 : 0,
            "country_id" => intval($_POST["country_id"])
        ));
        break;
    case "PUT":
        parse_str(file_get_contents("php://input"), $_PUT);
        $result = $residents->update(array(
            "id" => intval($_PUT["id"]),
            "name" => $_PUT["name"],
            "age" => intval($_PUT["age"]),
            "address" => $_PUT["address"],
            "married" => $_PUT["married"] === "true" ? 1 : 0,
            "country_id" => intval($_PUT["country_id"])
        ));
        break;
    case "DELETE":
        parse_str(file_get_contents("php://input"), $_DELETE);
        $result = $residents->remove(intval($_DELETE["id"]));
        break;
}
header('Content-Type: application/json; charset=utf-8');
//echo json_encode($result);
echo "Now the json encoded result: \n";
echo json_encode($result);
//var_dump($result);
//phpinfo(32);
?>
Ответ: Что значит не помогло, я же вам не Аспирин предлагаю. По делу, коли серверный код обрабатывает только эти запросы, то со строки 8 должно быть:

header('Content-Type: application/json; charset=utf-8');
exit(json_encode($residents->getAllNo()));
break;


с удалением строк 36 - 41, ибо остальные запросы вообще не интересует ответ сервера, и сколько строк вставлено или обновлено возвращается не известно кому и зачем.

Что за ссылки возвращаются, это разбирайтесь сами посредством отладчика и анализа, ибо причиной могут быть ошибки на сервере и прочее. А валидный JSON не получится, если сервер вкупе с ним будет выплевывать клиенту и другие данные, даже отданных подряд две json-строки в итоге не есть JSON.
Вопрос: Отправка и получение данных AJAX

Доброго времени.

Такая ситуация: на странице есть таблица, пытаюсь сделать добавление записи через всплывающую форму (на форме два поля типа file) - поэтому для отправки формы использую formData, с отправкой проблем не возникает, а вот как отправленные данные вставить в таблицу на форме не могу понять?

Вот что использую для отправки:
$('#modal_form').on('submit', function (e) {
        e.preventDefault();
        var $that = $(this),
            formData = new FormData($that.get(0));
            formData.append('type_form', 'table1');
/* для проверки отправляемых данных */
        console.log(formData.get('type_form'));
        console.log(formData.get('f1'));
        console.log(formData.get('f2'));
        console.log(formData.get('f3'));
        console.log(formData.get('f4'));
        console.log(formData.get('f5'));
/* для проверки отправляемых данных */
        $.ajax({
            url: $that.attr('action'),
            type: $that.attr('method'),
            contentType: false,
            processData: false,
            data: formData,
            //dataType: 'json',
            success: function (data) {
                if (data == '1'){
                    alert('Данные успешно добавлены');
                } else {
                    $('#modal_form #msg').fadeIn(100).delay(5000).html(data);
                    $('#modal_form #msg').fadeOut(100).html(data);
                }
            }
        });
    });


Теоретически подозреваю, что нужно с сервера только что добавленные поля собирать в массив или делать запрос к БД и обратно отправлять и вставлять их в таблицу!?
А вот каким образом?
Ответ: У вас есть всего два варианта:

1) Форма, это де-факто диалог клиент-сервер, который подразумевает обязательную проверку данных сервером. Сервер не поместит данные формы в базу до тех пор, пока они не будут отвечать условиям. Отсюда следует, что данные помещаемые в базу, это есть клон данных в форме клиента (диалог то асинхронный). Значит зачем возвращать клиенту то, что у него и так имеется - берем значения value каждого поля формы и помещаем его в ячейку таблицы, в которой находится поле ввода. Само поле ввода удаляем. И так со всеми полями формы.
Что касаемо файлов, то с ними можно поступить точно также. Но тут могут быть же тоже вариации - например, файлы, это изображения, и средствами HTML5 можно организовать их предпросмотр, а значит и оставить в таблице как информация о том, что загружено. Но если изображение при загрузке обрабатывается сервером, то желательно видеть результат, а значит серверу нужно возвращать адрес на успешно загруженное изображение.
Ну и плюс - допустим, что уже добавленное в базу можно было редактировать, значит нужно не удалять поля и не переписывать их значения в таблицу, а всего лишь менять стиль (для выделения) и режим полей (например ключ), и кнопку на "Редактирование". В этом случае сервер должен вернуть идентификатор добавленной записи этих данных.

2) Север возвращает принятые данные, которые отобразятся на клиенте. Но такое делать имеет смысл тогда, когда сервер производит некие манипуляции с данными, модифицирует их, иначе то смысла нет.
Вопрос: Проблема с запуском php функции через ajax

Добрый день!

Задача: необходимо перенаправить пользователя на другую страницу при успешном подключении к WebSocket серверу или получении от него каких-либо сообщений. Мне важно это реализовать именно при вызове функции php.

Код:
<?php
$ws = true;

function location() {
  header('Location: http://www.example.com/');
}

if($_POST['action'] == 'location') {
  location();
}
?>

<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>

  <?php if($ws == true) : ?>
    <script type="text/javascript">    
     var socket = new WebSocket("ws://xx.xx.xxx.xx:xxxx");
     
    socket.onopen = function() {
      $.ajax({
       url : 'wsajax.php' ,
       method : 'POST' ,
       data : { action : 'location' },
      success : function(resp){
       }
      });
     };
     </script>
  <?php endif; ?>

</body>
</html>


Итог работы: при обновлении страницы происходит подключение к серверу, но никаких перенаправлений не происходит. В чем моя ошибка?
Ответ:
Сообщение от Glebiys
Помимо перенаправления мне нужно еще добавлять записи в БД.
А что без Ajax этого нельзя сделать? Если не предполагается диалога с сервером, то он не к чему.
Вопрос: Помогите с ajax

помогите разобраться с ajax
Нужно при отправке текста в бд подгружать новые записи без перезагрузки страницы
С ajax раньше не работал((

Есть функция которая записывает данные в бд function.php
Код:
function bdadd () {
    global $db, $msg, $member_id;
    $textform = htmlspecialchars ( $_POST['txtform'] );
$db -> query ( "INSERT INTO `tablename` ( `username`, `text` ) VALUES ('{$member_id['name']}' , '{$textform}' )" );
$msg['ok'] = "Все ок";
}

$db->query ( "SELECT * FROM `tablename` WHERE `username` = '{$member_id['name']}'" );
while($row = $db->get_array()) {   
   $inform .= "
            <tr>
                <td wight:40px;>{$row['text']}</td>
                <td>{$row['username']}</td>
            </tr>";

}
генерация шаблона index.php
Код:
    if ( isset ( $_POST['bdadd'] ) ) {
        host ( $_POST['txtform'] );
    }
        ob_start();
    include CABTPL . '/index.html';
$content = ob_get_clean();
Ну и собственно сам шаблон index.html

Код:
<form action="" method="post">
        <input type="text" class="nick_text" name="textform" placeholder="Введите текст">
        <button class="menu-elem" name="bdadd">Отправить</button>
        </form>
  
 
    <table class="table">
    <tr>
            <td><b>Текст</b></td>
            <td><b>Ник</b></td>
        </tr>
<?=$inform?>

</table>
Ответ: Я вам давал ссылку, там описаны несколько методов асинхронных запросов, это непосредственно $.ajax, и несколько упрощенных, на одном из которых и написан пример. Может быть сперва уяснить как это работает на простейшем примере, если уж учится, а не "прикручивать" пример к своему коду?
Ведь в вашем случае форме не указан action, а значит она будет отправлена скрипту родителю, то есть в примере кода моего можно смело написать $.post(location, .... то есть текущий адрес. Но где в вашем приведенном коде непосредственно примем формы? Ведь если запрос асинхронный и не будет его обработки и возврата результата после чего выход, то клиенту вернется вся страница, ее html код.