0
jquery로 html 태그의 속성 값을 가져 오려고했습니다.jQuery - 정의되지 않은 변수로 어려움을 겪고 있습니다.
$query = "SELECT * FROM frontpage_modules";
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($query) or (mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$list[] = $row['module_name'];
$name[] = $row['name'];
$img[] = $row['img'];
$link[] = $row['link'];
$module_content[] = $row['module_content'];
}
?>
<form action="ChangeFrontpageModule.php" method="post">
<ul id="gallery">
<?php
for ($idx = 0; $idx < count($list); $idx+=1) {
echo "<li data-itemid='" . $idx . "'>";
echo "<div class='drag_div'>";
echo '<div class="kundeutsagn">';
echo '<img src="http://www.amedisin.no/pictures/artikler/'.$img[$idx].'" alt="Top5" title="Top5" />';
echo '<div class="statement_top">';
echo '<h5>'.$name[$idx].'</h5>';
echo "<input type='text' name='title' value='".$name[$idx]."' />";
echo $module_content[$idx];
echo '</div></div>';
echo "</div>";
echo "</li>";
}
?>
</ul>
</form>
입력 항목의 data-itemid (li 내) 및 값에 저장된 ID를 전달하려고합니다. , 속성 값이 "정의되지 않은"오류가 returnes하지만
다음는,이 코드는 "VAR 제목 = $ (이)) (.val"하지만 입력 요소에서 데이터를 얻을 수있어
당신이 게시 당신은 $(this).parent('ul')
에서 data-itemid
속성을 요구하고 오류
<script>
$(function() {
$('h5').click(function() {
$(this).slideUp().next('input').slideDown();
});
$('ul#gallery input').change(function() {
var id = $(this).parent('li').attr('data-itemid');
var thisParam = $(this);
var title = $(this).val();
$.ajax({
type: 'POST',
url: 'JavaScript/ChangeFrontpageModule.php',
data: 'title=' + title + '&id=' + id,
success: function(response) {
$('input').slideUp();
$(thisParam).prev('h5').text(title).slideDown();
$('#response').fadeIn(1000).empty().append(response).prepend('<span id="x">X</span>');
$('span#x').click(function() {
$('div#response').fadeOut('slow');
});
}
});
});
});
</script>
당신이 올바른지
parents()
을 제안했다 @ 크리스는 사실 내가 자리를 놓친 그러나 그것은 리 중 하나 –작동하지 않습니다. 더 자세히 살펴보고 업데이트되었으므로 잘 작동합니다. – Rick
.parents()는 모든'li' 부모를 선택하기 때문에'ul'을 중첩했다면 여러 개의'li'를 얻을 수 있습니다 .closest()는 아마도 더 좋을 것입니다 –