我无法使用动态ID提交表单。以下是我的代码。
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
var fval;
var cvalue = "<?php echo $_POST['currentval']; ?>";
if(!(cvalue)) cvalue=0;
$(document).ready(function() {
$('#upload'+cvalue).submit(function() {
var options = {
target: '#message',
url:'process.php?sval='+cvalue,
success: function() {
alert("success");
$('#uploader').html('');
}
};
$(this).ajaxSubmit(options);
return false;
});
});
</script>
<div id="message"></div>
<?php
for($i=0;$i<5;$i++) {
echo "<form action='#' method='post' name='upload' id='upload$i' enctype='multipart/form-data'>";
echo "<input type='hidden' name='svalhid' id='svalhid' value='$i'>";
echo "<input type='file' id='fl$i' name='filename".$i."up'>";
echo "<input type='hidden' name='currentval' id='currentval' value='$i'>";
echo "<input type='submit' name='uploads$i' value='Ok'><br>";
echo '</form>';
}
?>
在这一行中,$('#upload'+cvalue).submit(function() {
我无法获得cvalue。我无法确定此代码有什么问题。有人请帮助我。
答案 0 :(得分:1)
检查以下行
echo "<form action='#' method='post' name='upload' id='upload$i' enctype='multipart/form-data'>";
您确定为id属性打印出正确的值吗?
我认为它有两种更好的方式:
第一天(我眼中最好的方式):<?php
for($i=0;$i<5;$i++) {
?>
<form action='#' method='post' name='upload' id='upload<?php echo $i ?>' enctype='multipart/form-data'>";
<input type='hidden' name='svalhid' id='svalhid' value='<?php echo $i ?>'>"
<input type='file' id='fl<?php echo $i ?>' name='filename<?php echo $i ?>up'>";
<input type='hidden' name='currentval' id='currentval' value='<?php echo$i ?>'>"
<input type='submit' name='uploads<?php echo $i ?>' value='Ok'><br>"
</form>'
<?php
}
?>
第二:将提到的行改为以下:
echo "<form action='#' method='post' name='upload".$i."' id='upload".$i."' enctype='multipart/form-data'>";
注意:您定义了几个具有相同名称的表单。据我所知,属性“name”是表单的主要属性,而不是“id”属性。
答案 1 :(得分:0)
我没有看到除了“”或“0”之外的任何内容。此外,这两个赋值在$(document).ready(function(){之外...因此在文档完全加载之前执行该代码可能会发生奇怪的事情。将它们移入document.ready call并查看内容发生的情况。
答案 2 :(得分:0)
尝试使用
var cvalue = "<?php echo $_GET['currentval']; ?>";
或
var cvalue = "<?php echo $_REQUEST['currentval']; ?>";
还可以尝试@reporter关于表单ID的说法:id ='upload“。$ i。” 表单ID应与此处引用的表单相同:
$('#upload'+cvalue).submit(function() {
示例:
在javascript中:
$('#upload').submit(function() {
然后表格应该是:
<form id="#upload" ...
你一定会看到一些事情发生。 尝试安装firebug并使用console.log(variablehere)而不是alert(variablehere)。它更清洁。
希望有所帮助