如何将输入文本框的值及其id传递给javascript函数,以便它通过ajax发出post请求?

如何将输入文本框的值及其id传递给javascript函数,以便它通过ajax发出post请求?,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我在html表格单元格中找到了一些可编辑的文本框!每个文本框都有一个顶峰按钮。我想把textbox的值和textbox的id发送到javascript函数,这样它就可以向php脚本发出ajax post请求并编辑mysql行 我的问题是,我不知道如何将textbox值及其对应的id传递给javascript,并在ajax响应时更改textbox按钮。我的按钮也需要唯一的id吗?谁能告诉我怎么做吗?谢谢 $table3.="<tr>"; $table3.="<td>"

我在html表格单元格中找到了一些可编辑的文本框!每个文本框都有一个顶峰按钮。我想把textbox的值和textbox的id发送到javascript函数,这样它就可以向php脚本发出ajax post请求并编辑mysql行

我的问题是,我不知道如何将textbox值及其对应的id传递给javascript,并在ajax响应时更改textbox按钮。我的按钮也需要唯一的id吗?谁能告诉我怎么做吗?谢谢

 $table3.="<tr>";
 $table3.="<td>" . $row['ID'] ."(".$totalRows. ")</td>";
 $table3.="<td bgcolor=\"#FF0000\"><input type=\"text\" id =\"". $row['ID'] ."\" name=\"". $row['ID'] ."\" value=\"edit\"><button onclick='setNewValue(\"".$row['ID']."\")'>Edit this Row</button></td>";
 $table3.="<td>" . $row['imgPURL'] . "</td>";
 $table3.="<td>" . $row['imgUrl'] . "</td>";
 $table3.="<td>".$line."</td>";  echo "</tr>";
$table3.=”;
$table3.=''$行['ID']。”(“$totalRows.”);
$table3.=“编辑此行”;
$table3.=''$行['imgPURL']。"";
$table3.=''$行['imgUrl']。"";
$table3.=“.$line.”;回声“;
javascript:

<script>
function setNewValue(a,b) {
var button = $(event.target);  // get button here

var text = $("#"+a);
var textboxvalue = text.val();

//alert("inputId:"+a+"\nuInputValue:"+b);


    var url = "./edit.php";
    $.post(url, {
        "method": "post",
        "rowId": a,
        "rowValue": textboxvalue,

    }, function(data) 
       {

          var ajaxResponse = data;

        //alert("success"+ajaxResponse);

            if(ajaxResponse.indexOf("SuccessEdit")>=0)
            {
              //remote the edit button
               button.hide();
            } 
            else
            {
              //change caption of edit button to try again
             button.text("some text");
            }

      })
    }

</javascript>

函数setNewValue(a,b){
var button=$(event.target);//在此处获取按钮
变量文本=$(“#”+a);
var textboxvalue=text.val();
//警报(“输入ID:+a+”\nInputValue:+b);
var url=“./edit.php”;
$.post(网址:{
“方法”:“发布”,
“rowId”:a,
“rowValue”:textboxvalue,
},函数(数据)
{
var ajaxResponse=数据;
//警报(“成功”+ajaxResponse);
if(ajaxResponse.indexOf(“SuccessEdit”)>=0)
{
//遥控编辑按钮
按钮隐藏();
} 
其他的
{
//更改“编辑”按钮的标题以重试
按钮文本(“某些文本”);
}
})
}

通过setNewValue(23)等函数传递输入框的id

函数setNewValue(id){

$(“#”+id)

}

就是这样,您可以获得输入框的所有值

如果使用id或类命名submit按钮,则此操作有效

这一行:

$table3.= "<td bgcolor=\"#FF0000\"><input type=\"text\" id =\"". $row['ID'] ."\" name=\"". $row['ID'] ."\" value=\"edit\"><button onclick=\'setNewValue()\'>Edit this Row</button></td>";
更新、隐藏按钮或更改标题

function setNewValue(id){
    var button = $(event.target);  // get button here

     // change caption 
     button.text("some text");

     // hide 
     button.hide();

}

您可以像传递普通js参数一样传递它==>

<input type=text id = <?php echo $row['id'];  ?> onclick= setNewValue(<?php echo $row['id']; ?>);


    function setNewValue(id){

    var obj = $("#"+id);

    console.log(obj);

    }

请记住,如果他使用的是元素,则默认类型为submit,并且他的整个表单可能会提交。在JS事件上添加type=“button”或使用event.preventDefault()。

谢谢回复。Ivin Polo Sony您能告诉我如何将inputbox的id传递给函数吗?我试过这个,但它给我错误!编辑此行。在传递了inputbox的id之后,如何访问inputbox本身的值?@user1788736您只需通过如下函数参数传递is,即可确保textbox的值是动态的和可编辑的。在你的例子中,你只是把它编辑!如何将用户在文本框中输入的内容传递给javascript。我删除了“编辑”部分,我得到了很多错误!谢谢,我一直在尝试var textboxvalue=$('input[id=+a]')。val();但它不起作用。但现在我在javascript中同时获得id和文本框值。现在,根据ajax调用的ajax响应,如何删除按钮或更改按钮的标题?我想让用户知道编辑成功了。或者,例如,如何在ajax响应上更改inputbox的bgcolor?@user1788736,问题进展如何?如果ajax响应的结果为SuccessEdit(如果(ajaxResponse.indexOf(“SuccessEdit”)>=0),则我只想更改页面中不止一个单击的按钮!我是否也需要为每个按钮提供唯一的id?在函数
setNewValue()
中,
var button=$(event.target)获取您单击的按钮。
function setNewValue(id){
    var button = $(event.target);  // get button here

     // change caption 
     button.text("some text");

     // hide 
     button.hide();

}
 $table3.="<tr>";
 $table3.="<td>" . $row['ID'] ."(".$totalRows. ")</td>";
 $table3.="<td bgcolor=\"#FF0000\"><input type=\"text\" id =\"". $row['ID'] ."\" name=\"". $row['ID'] ."\" value=\"edit\"><button onclick=\'setNewValue(this)\'>Edit this Row</button></td>";
 $table3.="<td>" . $row['imgPURL'] . "</td>";
 $table3.="<td>" . $row['imgUrl'] . "</td>";
 $table3.="<td>".$line."</td>";  echo "</tr>";
function setNewValue(btn) {
   var cell = btn.parentNode.querySelector("input[type='text']");
   var input = cell.querySelector("input[type='text']");
   var inputId = input.id;
<input type=text id = <?php echo $row['id'];  ?> onclick= setNewValue(<?php echo $row['id']; ?>);


    function setNewValue(id){

    var obj = $("#"+id);

    console.log(obj);

    }