Добавить значение из поля ввода в пользовательский параметр href

0

Я использую код ниже, чтобы захватить некоторые данные из моего 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;
    });
});

});
  • 0
    Разве вы не знаете, что $(document).ready(function... - это то же самое, что $(function... ?)
  • 0
    теперь это не моя проблема f00bar! нужно решить мою проблему! Поблагодарить
Теги:

1 ответ

1
Лучший ответ

Первое, что я хочу очистить: атрибут 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() { внутри готового они оба равны

Примечание для PHP

Пожалуйста, не используйте функции mysql_* в новом коде. Они больше не поддерживаются и официально устарели. Видишь красную коробку? Вместо этого узнайте о готовых утверждениях и используйте PDO или MySQLi - эта статья поможет вам решить, какие именно. Если вы выбираете PDO, вот хороший урок.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню