Я хочу выбрать только идентификатор текстового поля после этого, чтобы вставить в базу данных. Например, у меня есть echo $t['id']
echo $t['name']
но я хочу выбрать только идентификатор. Есть ли какое-либо решение? Я хочу получить из li элементов только $ t ['id'] после этого, чтобы вставить в базу данных... Если я пишу только $ t ['id'], я могу вставлять в базу данных, но если я напишу $ t ['id'] -$t ['name'] Я получаю сообщение об ошибке... Поэтому мне нужно получить только текстовое поле $ t ['id']
HTML:
<input type="text" name="dropdiv" id="dropdiv" style="width:605" />
<div id="dragdiv">
<ul id="allItems">
<?php if($tags): ?>
<?php foreach($tags as $t): ?>
<li id="node" runat="server" value="$t['id']">
<?php echo $t['id']?><?php echo $t['name'] ?>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
</div>
<br />
JQuery:
<script type="text/javascript">
$(function() {
$("#dragdiv li").draggable({
helper: "clone",
cursor: "move",
revert: "invalid"
});
initDroppable($("#dropdiv"));
function initDroppable($elements) {
$elements.droppable({
activeClass: "ui-state-default",
hoverClass: "ui-drop-hover",
accept: ":not(.ui-sortable-helper)",
over: function (event, ui) {
var $this = $(this);
},
drop: function (event, ui) {
var $this = $(this);
if ($this.val() == '') {
$this.val(ui.draggable.text().trim());
ui.draggable.remove();
} else {
$this.val($this.val() + " " + ui.draggable.text().trim());
ui.draggable.remove();
}
}
});
}
});
</script>
CodeIgniter
$tags = $this->input->post('dropdiv');
$theid = $this->db->insert_id();
$tags_arr = array();
$theid = $this->db->insert_id();
$tags_arr = explode(' ',$tags);
foreach ($tags_arr as $t)
{
$tag_SQL = $t;
$this->db->query("insert into tags_in_news (news_id, tag_id) values ('{$theid}','{$tag_SQL}')");
}
Помогите, пожалуйста, ребята...
Я вижу только один текстовый код в вашем коде. Итак, просто выполните:
$("#dropdiv").method();
Подробнее о селекторах jQuery можно узнать здесь: http://api.jquery.com/category/selectors/
Кажется, я постепенно начинаю понимать. Замените ui.draggable.text()
с помощью ui.draggable.attr('value')
, потому что вы пытаетесь это получить. Но еще лучше замените атрибут value
атрибутом data-id
в вашем html (таким образом, он исправит html).
HTML:
<li id="node" runat="server" data-id="$t['id']">
ЯШ:
if ($this.val() == '') {
$this.val(ui.draggable.attr('data-id').trim());
ui.draggable.remove();
} else {
$this.val($this.val() + " " + ui.draggable.attr('data-id').trim());
ui.draggable.remove();
}
.text()
и сохраните значение в поле <input type="hidden" />
.