0

我正在使用下面的代码从我的数据库中获取一些数据。下面的代码也通过ajax调用从mysql中删除记录。正如您所看到的,对于每个输入字段,我都有一个保存按钮和一个删除按钮。我通过 a href 从每条记录中发送一个唯一的 ID。

现在我想要的只是将一个自定义变量传递给我的保存按钮的 a 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;
    });
});

});
4

1 回答 1

1

我要清除的第一件事是 id 属性在整个 HTML 元素中应该是唯一的,而不是您可以将类用于多个元素,或者您可以在循环中使用唯一的 id,如下所示$chann['id']-channelName我假设数据库中的 id 是唯一的

<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() {inside ready 他们都是平等的

PHP的注意事项

请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-10-19T19:44:49.673 回答