Javascript 单击按钮时使用ajax将未定义的值添加到数据库
您好,我有一个表,我正在执行内联编辑,我正在尝试通过单击按钮(即:img)将值更新到数据库,我尝试使用onclick函数,但其编辑值显示为Javascript 单击按钮时使用ajax将未定义的值添加到数据库,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,您好,我有一个表,我正在执行内联编辑,我正在尝试通过单击按钮(即:img)将值更新到数据库,我尝试使用onclick函数,但其编辑值显示为 “value=undefined&rowid=undefined&field=undefined” 下面是我的代码。谁能告诉我怎么做。谢谢 我的ajax $(document).ready(function () { $('td.edit').click(function (e) { var $target = $(e.t
“
value=undefined&rowid=undefined&field=undefined”
下面是我的代码。谁能告诉我怎么做。谢谢
我的ajax
$(document).ready(function () {
$('td.edit').click(function (e) {
var $target = $(e.target);
if ($target.is('#editbox')) {
return;
}
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
$(this).addClass('ajax');
$(this).html('<input id="editbox" size="5" type="text" value="' + $(this).text() + '">');
$('#editbox').select();
}
);
$('td.edit1 img').on('click', function () {
arr = $(this).parent().attr('class').split(' ');
$.ajax({
type: "POST",
url: "clientnetworkpricelist/update.php",
data: "value=" + $('.ajax input').val() + "&rowid=" + arr[1] + "&field=" + arr[2],
success: function (data) {
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
}
});
});
$('#editbox').live('blur', function () {
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
});
});
$(文档).ready(函数(){
$('td.edit')。单击(函数(e){
var$target=$(即target);
if($target.is('#editbox')){
返回;
}
$('.ajax').html($('.ajax输入').val());
$('.ajax').removeClass('ajax');
$(this.addClass('ajax');
$(this.html(“”);
$(“#编辑框”)。选择();
}
);
$('td.edit1 img')。在('click',函数(){
arr=$(this.parent().attr('class').split('');
$.ajax({
类型:“POST”,
url:“clientnetworkpricelist/update.php”,
数据:“value=“+$('.ajax input').val()+”&rowid=“+arr[1]+”&field=“+arr[2]”,
成功:功能(数据){
$('.ajax').html($('.ajax输入').val());
$('.ajax').removeClass('ajax');
}
});
});
$('#editbox').live('blur',function(){
$('.ajax').html($('.ajax输入').val());
$('.ajax').removeClass('ajax');
});
});
我的Html
<?php
$dbHost = 'localhost'; // usually localhost
$dbUsername = 'fms';
$dbPassword = 'xxxxxxxx';
$dbDatabase = 'fms';
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db) or die ("Could not select database.");
$clientid=$_GET['clientid'];
$region=$_GET['region'];
$clientid_query="";
$region_query="";
if($clientid!=""){
$clientid_query="WHERE clientid = '$clientid'";}
else{
if($region!=""){
$region_query="WHERE region = '$region'";}
else{
$region_query="";
}
}
$sql="SELECT * FROM clientnetworkprice"." ".$clientid_query or $region_query ;
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result))
{
if($alt == 1)
{ echo '<tr class="alt">';
$alt = 0;
}
else
{
echo '<tr>';
$alt = 1;
}
echo ' <td class=" '.$rows["id"].'">'.$rows["clientid"].'</td>
<td id="CPH_GridView1_clientid" class=" '.$rows["id"].'">'.$rows["region"].'</td>
<td id="CPH_GridView1_country" class=" '.$rows["id"].'">'.$rows["country"].'</td>
<td id="CPH_GridView1_networkname" class=" '.$rows["id"].'">'.$rows["networkname"].'</td>
<td id="CPH_GridView1_mcc" input type="text" name="mcc" id="mcc" class=" '.$rows["id"].'">'.$rows["mcc"].'</td>
<td id="CPH_GridView1_mnc" input type="text" name="mnc" id="mnc" class="'.$rows["id"].'">'.$rows["mnc"].'</td>
<td id="CPH_GridView1_mnp" class="edit mnp '.$rows["id"].'">'.$rows["mnp"].'</td>';
$ColumnNames = mysql_query("SELECT column_name FROM information_schema.COLUMNS WHERE table_name = 'clientnetworkprice' AND column_name NOT
IN ('id','clientid','region', 'country', 'networkname', 'mcc', 'mnc', 'mnp','clientprice','supplierroute'
)") or die("mysql error");
$columnArray=array();
$i=0;
while($rows1=mysql_fetch_array($ColumnNames))
{
$columnArray[]=$rows1[0];
echo '<td id="CPH_GridView1_xxx" width="0px;" class="edit '.$columnArray[$i].' '.$rows["id"].'">'.$rows[$columnArray[$i]].'</td>';
$i++;
}
echo ' <td id="CPH_GridView1_clientprice" class="edit clientprice '.$rows["id"].'">'.$rows["clientprice"].'</td>
<td id="CPH_GridView1_supplierroute" class="edit supplierroute '.$rows["id"].'">'.$rows["supplierroute"].'
</td>
<td class="edit1"><img src="/image/Picture1.png" style="margin:0 0 0 6px;;cursor:pointer" ></td>'
;
echo '</tr>';
}
?>
首先
你有的是这个
<td id="CPH_GridView1_clientid" class=" '.$rows["id"].'">'.$rows["region"].'</td>
其次,由于选择器$(this).parent().attr('class')
选择
td.edit1
元素本身,该元素本身不具有除edit1
以外的任何其他类,因此arr[1]
和arr[2]
是未定义的。我想您的意思是arr[0]
(第一个元素将为您提供edit1)和。在文档中找不到ajax输入。。在html中,在“编辑”和“类”中的数字(1)之间有一个空格,但是在jquery选择器中,您没有在它们之间放置任何空格,所以没有找到任何内容。谢谢。这个$('.ajax input').val()给了你什么?我在你的代码中看不到“ajax”类
<td id="CPH_GridView1_mcc"><input type="text" name="mcc" id="mcc" class=" '.$rows["id"].'">'.$rows["mcc"].'</td>
----^^^--- here
$('td.edit1 img').on('click', function () {
arr = $(this).parent().attr('class').split(' ');
....