Я использую код ниже, чтобы захватить некоторые данные из моего db. Кроме того, код ниже удаляет записи из mysql через вызов ajax. Как вы можете видеть для каждого поля ввода, у меня есть кнопка сохранения и кнопка удаления. Я отправляю уникальный идентификатор из каждой записи через href.
Теперь все, что я хочу, это передать пользовательскую переменную в href для моей кнопки сохранения. И я имею в виду, что в каждом href я добавил значение cvalue = "".
Как можно захватить входное значение и добавить его в этот cvalue = "здесь я хочу получить значение из поля ввода"
Имейте в виду, что у меня много записей..
<ol class="update">
<?php
$ss = mysql_query ("SELECT * FROM users_channels WHERE u_id='$uid'");
while($chann = mysql_fetch_assoc($ss)) {
echo'
<li>
<input name="channelName" type="text" id="channelName" style="float:left; width:300px; border:1px solid #CCC;" value="'.$chann['channel_name'].'" />
<a href="#" id="'.$chann['id'].'" class="delete_button"><span id="rcolor">Delete</span></a>
<a href="#" id="'.$chann['id'].'" cvalue="'.$chann['channel_name'].'" class="save_button"><span id="gcolor">Save</span></a>
</li>';
}
?>
</ol>
И Код JQuery:
$(document).ready(function() {
$(function() {
$(".save_button").click(function() {
var id = $(this).attr("id");
var cvalue = $("#channelName").val();
var dataStringe = 'id='+ id + '&cvalue='+ cvalue;
var parent = $(this).parent();
alert(curval);
$.ajax({
type: "POST",
url: "update_channel.php",
data: dataStringe,
cache: false,
beforeSend: function()
{
parent.animate({'backgroundColor':'#fb6c6c'},300).animate({ opacity: 0.35 }, "slow");
},
success: function()
{
//parent.slideUp('slow', function() {$(this).remove();});
}
});
return false;
});
});
});
Первое, что я хочу очистить: атрибут id должен быть уникальным для всех элементов HTML, вместо этого вы можете использовать класс для нескольких элементов или играть с уникальными идентификаторами в цикле, как $chann['id']-channelName
ниже: $chann['id']-channelName
Я предполагаю, что идентификатор из база данных уникальна
<ol class="update">
<?php
$ss = mysql_query ("SELECT * FROM users_channels WHERE u_id='$uid'");
while($chann = mysql_fetch_assoc($ss)) {
echo'
<li>
<input name="channelName" type="text" id="'.$chann['id'].'-channelName" style="float:left; width:300px; border:1px solid #CCC;" value="'.$chann['channel_name'].'" />
<a href="#" id="'.$chann['id'].'-delete" class="delete_button"><span id="rcolor">Delete</span></a>
<a href="#" id="'.$chann['id'].'" title="'.$chann['channel_name'].'" class="save_button"><span id="gcolor">Save</span></a>
</li>';
}
?>
</ol>
В готовой функции вы можете получить входное значение, как показано ниже
$(".save_button").click(function() {
var id = $(this).attr("id");
var cvalue = $("#"+id+"-channelName").val();// you can grab the sibling input value
ИЛИ ЖЕ
var cvalue = $(this).attr('title');// you can grab the value from title attribute
var dataStringe = 'id='+ id + '&cvalue='+ cvalue;
var parent = $(this).parent();
// var delete = $("#"+id+"-delete") to get delete anchor
});
После того, как вы использовали ready
нет необходимости использовать $(function() {
внутри готового они оба равны
Пожалуйста, не используйте функции
mysql_*
в новом коде. Они больше не поддерживаются и официально устарели. Видишь красную коробку? Вместо этого узнайте о готовых утверждениях и используйте PDO или MySQLi - эта статья поможет вам решить, какие именно. Если вы выбираете PDO, вот хороший урок.
$(document).ready(function...
- это то же самое, что$(function...
?)