Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为动态JS表创建行ID_Php_Javascript_Html_Mootools - Fatal编程技术网

Php 为动态JS表创建行ID

Php 为动态JS表创建行ID,php,javascript,html,mootools,Php,Javascript,Html,Mootools,我有一个工作脚本,用户在表单上完成输入,当他们提交表单时,表单输入的内容作为表行输入 我认为,在JS中,有没有办法让每一行都有一个唯一的ID,并在每一行的最后一列添加一个delete按钮,这样用户就可以删除一行 谢谢你救了我的命 HTML表单 <form id="my_form" action="table_form.php" method="post"> <div style="width:10%; float:left;">

我有一个工作脚本,用户在表单上完成输入,当他们提交表单时,表单输入的内容作为表行输入


我认为,在JS中,有没有办法让每一行都有一个唯一的ID,并在每一行的最后一列添加一个delete按钮,这样用户就可以删除一行

谢谢你救了我的命

HTML表单

    <form id="my_form" action="table_form.php" method="post">
            <div style="width:10%; float:left;">
                Quantity<br />
                <input name="field_1" type="text" id="field_1" size="3" />
            </div>
            <div style="width:20%; float:left;">
                Part Number<br />
                <input type="text" id="field_2" name="field_2" />
            </div>
            <div style="width:30%; float:left;">
                Notes<br />
                <input name="field_3" type="text" id="field_3" size="45" />
            </div>
            <div style="width:20%; float:left;">
                Unit Price<br />
                <input type="text" id="field_4" name="field_4" />
            </div>
           <div style="width:20%; float:left;">
                <br />
                <input type="submit" value="Add Row" />
            </div>
        </form>

        <!-- 
            Here we create our HTML table.
            Note the ID of the table. This will be used in our javascript file
            Our table only contains a header row. All other content will be added dynamically
        --><? $rowid = 1; ?>
        <table width="100%" id="my_table">
        <tbody id="my_table_body">
         <tr>
          <th width="5%"><div align="left">Qty</div></th>
          <th width="19%"><div align="left">Part Number</div></th>
          <th width="46%"><div align="left">Notes</div></th>
          <th width="15%"><div align="left">Unit Price</div></th>
          <th width="15%"><div align="left">Row Total</div></th>
         </tr>
         </tbody>
</table>  

数量
零件号
注释
单价

数量 零件号 笔记 单价 行总数

JS

window.addEvent('domready',function(){
$('my_form')。addEvent('submit',函数(e){
e、 停止();
this.set('send'{
未完成:功能(响应){
var data=JSON.decode(响应);
注入行($('my_table_body'),数据);
}
});
var valid_form=true;
$$(“#我的表单输入”)。每个(函数(项){
如果(item.value='')有效形式=false;
});
if(有效表格){
这个。send();
}否则{
警报(“填写所有字段”);
}
});
var inject\u row=函数(表体,数据){
var row_str='';
数据。每个功能(项目、索引){
行str+=''+项+'';
});
行_str+='';
var newRow=htmlotelements(row_str);
newRow.inject(表体);
}
var htmlotelements=函数(str){
返回新元素('div',{html:'+str+''});
}  
});

PHP


这对于本项目来说应该足够独特:

var newDate = new Date;
var id = newDate.getTime();

然后,只需将其添加到循环中的行中,并将其链接到删除按钮。

这对于该项目来说应该足够独特:

var newDate = new Date;
var id = newDate.getTime();

然后,只需将其添加到循环中的行中,并将其链接到删除按钮。

我总是使用php函数
uniqid()
。它根据以微秒为单位的时间生成唯一id


在使用
json\u encode()
之前,您可以在PHP中循环搜索结果,并将
uniqid()的结果添加到每个结果中。它根据以微秒为单位的时间生成唯一id


在使用
json\u encode()
之前,您可以在PHP中循环查看您的结果,并将
uniqid()的结果添加到每个结果中。我同意J-p,听起来您不需要唯一的id。
由于问题被标记为“jquery”,我建议使用

调用函数时,此上下文是事件发生的元素。父元素(“tr:first”)返回当前元素的祖先轴中第一个/最近的tr元素。remove()可能是自我解释的

编辑:好的,现在jquery标记已经消失了……
显示mootools的实时事件绑定。使用这个“新”解决方案与jquery脚本非常相似

window.addEvent('domready', function() {
  // add an onclick handler for all current and future button elements
  // within the table id=t1
  $('t1').addLiveEvent('click', 'button', function(e){ 
    // a button in t1 has been clicked, this=button element
    // get the "nearest" tr in the parent/ancestor-axis
    // and remove it
    $(this).getParent("tr").dispose();
  });
});

我同意J-p的说法,听起来这里不需要唯一的id。
由于问题被标记为“jquery”,我建议使用

调用函数时,此上下文是事件发生的元素。父元素(“tr:first”)返回当前元素的祖先轴中第一个/最近的tr元素。remove()可能是自我解释的

编辑:好的,现在jquery标记已经消失了……
显示mootools的实时事件绑定。使用这个“新”解决方案与jquery脚本非常相似

window.addEvent('domready', function() {
  // add an onclick handler for all current and future button elements
  // within the table id=t1
  $('t1').addLiveEvent('click', 'button', function(e){ 
    // a button in t1 has been clicked, this=button element
    // get the "nearest" tr in the parent/ancestor-axis
    // and remove it
    $(this).getParent("tr").dispose();
  });
});

“将删除按钮添加到每行的最后一列,以便用户可以删除单个行”-您是否将数据存储在服务器端?此删除操作在何处进行?服务器端?客户端?两者都没有?没有任何东西存储在SS中-操作将在CS中进行。添加一个delete按钮非常简单,它为行提供了一个唯一的id,因此用户只能在按下delete按钮时删除相应的行。谢谢你的关注。比尔特,你不需要任何身份证。当按下一个按钮时,只需遍历DOM到最近的TR元素并“删除”它…嗨,J-P谢谢你的回答,JS不是我的强项-你能在上面的代码中显示我吗?只需在TD中放置一个类似的链接,然后执行$$(.a.remove”).addEvent(“单击”,函数(e){new Event(e.stop();this.getParent().dispose();});如果在一个div中它是td的子级,显然要这样做。getParent().getParent().dispose();针对TR“将删除按钮添加到每行的最后一列,以便用户可以删除单个行”-您是否将数据存储在服务器端?此删除操作在何处进行?服务器端?客户端?两者都没有?没有任何东西存储在SS中-操作将在CS中进行。添加一个delete按钮非常简单,它为行提供了一个唯一的id,因此用户只能在按下delete按钮时删除相应的行。谢谢你的关注。比尔特,你不需要任何身份证。当按下一个按钮时,只需遍历DOM到最近的TR元素并“删除”它…嗨,J-P谢谢你的回答,JS不是我的强项-你能在上面的代码中显示我吗?只需在TD中放置一个类似的链接,然后执行$$(.a.remove”).addEvent(“单击”,函数(e){new Event(e.stop();this.getParent().dispose();});如果在一个div中它是td的子级,显然要这样做。getParent().getParent().dispose();把目标对准TR.对不起,沃尔克,一定是因为我不能
function() {
  $(this).parents("tr:first").remove();
}
window.addEvent('domready', function() {
  // add an onclick handler for all current and future button elements
  // within the table id=t1
  $('t1').addLiveEvent('click', 'button', function(e){ 
    // a button in t1 has been clicked, this=button element
    // get the "nearest" tr in the parent/ancestor-axis
    // and remove it
    $(this).getParent("tr").dispose();
  });
});