Javascript jQuery多个动态表单+;Foreach循环
好吧,我完全卡住了。我尝试了这里的每一个答案,但我就是无法让它发挥作用 我的目标:使用jQuery和AJAX更新动态表单 问题出在哪里:当单击其中一个“保存”按钮时,它只保存第一个值,我尝试使用不同的ID进行保存,但作为jQuery的新手,我认为我做得不对 jQueryJavascript jQuery多个动态表单+;Foreach循环,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,好吧,我完全卡住了。我尝试了这里的每一个答案,但我就是无法让它发挥作用 我的目标:使用jQuery和AJAX更新动态表单 问题出在哪里:当单击其中一个“保存”按钮时,它只保存第一个值,我尝试使用不同的ID进行保存,但作为jQuery的新手,我认为我做得不对 jQuery $(document).ready(function() { $("textarea").keyup(function(){ var txtArea = $('.txta').val();
$(document).ready(function() {
$("textarea").keyup(function(){
var txtArea = $('.txta').val();
var scriptString = $('.button').attr("url");
$(".button").click(function(){
$.ajax({
method: 'get',
url: '../wp-content/plugins/custom-text-editor/writefile.php',
data: {
'myString': scriptString,
'txt': txtArea,
'ajax': true
},
success: function(data) {
$('#'+myString).text(data);
return false;
}
});
});
});
});
writefile.php
$file = fopen("files/tab1.txt","w");
$txt = $_GET['txt'];
fwrite($file,$txt);
fclose($file);
echo "OK!";
生成的HTML
<table class=bordered>
<tr>
<th>Filename</th>
<th></th>
<th></th>
</tr>
<tr class=header>
<td class='plus'>+</td>
<td><p>tab1.txt</p></td>
<td><span id='ss' class='data'></span></td>
</tr>
<tr>
<td colspan="3" class="nopad">
<p><textarea cols="80" class="txta" rows="12" id="tab1.txt">asdasd</textarea>
<span id='tab1.txt' class='button' rel='qyz' url=tab1.txt>Save</span></p>
</td>
</tr>
<tr class=header>
<td class='plus'>+</td>
<td><p>tab2.txt</p></td>
<td><span id='ss' class='data'></span></td>
</tr>
<tr>
<td colspan="3" class="nopad">
<p><textarea cols="80" class="txta" rows="12" id="tab2.txt">This is file 2</textarea>
<span id='tab2.txt' class='button' rel='qyz' url=tab2.txt>Save</span></p>
</td>
</tr>
<tr class=header>
<td class='plus'>+</td>
<td><p>tab3.txt</p></td>
<td><span id='ss' class='data'></span></td>
</tr>
<tr>
<td colspan="3" class="nopad">
<p><textarea cols="80" class="txta" rows="12" id="tab3.txt">And File 3</textarea>
<span id='tab3.txt' class='button' rel='qyz' url=tab3.txt>Save</span></p>
</td>
</tr>
<tr class=header>
<td class='plus'>+</td>
<td><p>tab4.txt</p></td>
<td><span id='ss' class='data'></span></td>
</tr>
<tr>
<td colspan="3" class="nopad">
<p><textarea cols="80" class="txta" rows="12" id="tab4.txt">It works!</textarea>
<span id='tab4.txt' class='button' rel='qyz' url=tab4.txt>Save</span></p>
</td>
</tr>
</table>
文件名
+
tab1.txt
asdasd
保存
+
tab2.txt
这是文件2
拯救
+
tab3.txt
和文件3
拯救
+
tab4.txt
它起作用了!
拯救
这应该可以解决您的问题:
$(document).ready(function () {
$(".button").click(function () {
var txtArea = $(this).closest('tr').find('.txta').val();
var scriptString = $(this).closest('tr').find('.button').attr("url");
$.ajax({
method: 'get',
url: '../wp-content/plugins/custom-text-editor/writefile.php',
data: {
'myString': scriptString,
'txt': txtArea,
'ajax': true
},
success: function (data) {
$('#' + myString).text(data);
return false;
}
});
});
});
工作原理:
你能发布生成的HTML吗(而不是echo的一行又一行)?添加了它,我很抱歉代码太乱。太棒了!就像一个符咒一样工作:)为了未来读者的利益,你能解释一下为什么这会解决问题,或者更确切地说是什么问题吗?是的,我很高兴:)我用详细的解释扩展了我的答案