Я подробно рассмотрел этот сайт & онлайн для ответа на этот вопрос. Я попытался применить несколько примеров к моей проблеме безрезультатно.Сохранение портлетов jQuery для базы данных
У меня есть два блока под названием «Links
» & «User Links
». Внутри каждого блока они представляют собой описания (которые являются самими блоками) ссылок на моем сайте, которые можно индивидуально перетаскивать слева направо.
Моя проблема в том, что я не могу сохранить данные в свою базу данных, как только я нажимаю «Save Changes
», моя ошибка «Undefined index: quicklink
»
Вот код.
<?php echo Form::open(URL::Base().Route::get('links')->uri(array('action' => 'update')), array('id' => 'links-form', 'class' => 'form', 'enctype' => 'multipart/form-data')) ?>
<section class="grid_12">
<div class="block-border">
<div class="block-content">
<div class="block-controls">
<div class="controls-buttons"></div>
</div>
<h1>Quick Links</h1>
<div class="columns">
<div class="colx2-left">
<fieldset>
<legend>Links</legend>
<p class="inline-small-label small-margin">
<div class="column">
<?php if (count($links)): ?>
<?php foreach ($links as $row): ?>
<div class="portlet">
<div class="portlet-content"><?php echo $row->description ?></div>
</div>
<?php endforeach ?>
<?php endif ?>
</div>
</p>
</fieldset>
</div>
<div class="colx2-right">
<fieldset>
<legend>User Links</legend>
<p class="inline-small-label small-margin">
<div class="column">
<?php if (count($userlinks)): ?>
<?php foreach ($userlinks as $row): ?>
<div class="portlet" name="link[]" id="link" multiple="multiple" size="12">
<div class="portlet-content"><?php echo $row->link_id ?></div>
</div>
<?php endforeach ?>
<?php endif ?>
</div>
</p>
</fieldset>
</div>
</div>
<div class="columns">
<div class="colx2-left align-center">
<?php echo Form::button('save_edit', 'Save Changes', array('id' => 'save_edit', 'type' => 'submit', 'value' => 'save_edit')) ?>
</div>
<div class="colx2-right align-center">
<?php echo Form::button('cancel_edit', 'Cancel Changes', array('id' => 'cancel_edit', 'type' => 'button', 'value' => 'cancel_edit')) ?>
</div>
</div>
</div>
</div>
</section>
<div class="clear"></div>
<?php echo Form::close() ?>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<style>
body { min-width: 520px; }
.column { width: 520px; float: left; padding-bottom: 100px; }
.portlet { margin: 0 1em 1em 0; }
.portlet:hover { cursor: pointer }
.portlet-header { margin: 0.3em; padding-bottom: 4px; padding-left: 0.2em; }
.portlet-header .ui-icon { float: right; }
.portlet-content { padding: 0.4em; }
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
.ui-sortable-placeholder * { visibility: hidden; }
</style>
<script>
$(function() {
$(".column").sortable({
connectWith: ".column"
});
$(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
.find(".portlet-header")
.addClass("ui-widget-header ui-corner-all")
.prepend("<span class='ui-icon ui-icon-minusthick'></span>")
.end()
.find(".portlet-content");
$(".portlet-header .ui-icon").click(function() {
$(this).toggleClass("ui-icon-minusthick").toggleClass("ui-icon-plusthick");
$(this).parents(".portlet:first").find(".portlet-content").toggle();
});
$(".column").disableSelection();
});
</script>
CONTROLLER
/**
* Update the Users settings and details
*
* @return void
*/
public function action_update()
{
$this->template = NULL;
$this->auto_render = FALSE;
if ($_POST)
{
$row = ORM::factory('LinkUser');
// Remove all current Links
foreach($row->link->find_all() as $ql)
$row->remove('link', $ql);
foreach($_POST['link'] as $ql)
{
$row->add('link', $ql);
}
}
}
МОДЕЛЬ "Ссылка"
<?php defined('SYSPATH') or die('No direct access allowed.');
class Model_Link extends ORM {
protected $_table_name = 'links';
protected $_has_many = array(
'qlinkusers' => array(
'model' => 'LinkUser',
'foreign_key' => 'link_id',
'through' => 'links_users',
),
);
}
МОДЕЛЬ "LinkUser"
<?php defined('SYSPATH') or die('No direct access allowed.');
class Model_LinkUser extends ORM {
protected $_table_name = 'links_users';
protected $_belongs_to = array(
'link' => array(
'model' => 'Link',
'foreign_key' => 'link_id',
'through' => 'links_users',
),
'user' => array(
'model' => 'user',
'foreign_key' => 'user_id',
),
);
}
Я невероятно слаб на jQuery, надеюсь, ясно, что мне нужно ... Я хочу перетащить несколько ссылок из левого блока в правый блок, который до сих пор успешный, я не могу сохранить данные в моей базе данных после нажатия "Save Changes
", моя ошибка: "Undefined index: link
"
Большое спасибо.
только удосужился увидеть это сейчас Rens. Я ценю, что вы не торопитесь, чтобы посмотреть на мою проблему, я попытаюсь обратиться к вам за советом завтра. – user1839477