我在一个名为results.php的页面中有一个表格html genid,配置 ENSMUSG00000098791 ENSMUSG00000023441 ENSMUSG00000047431
results.php有这个功能
<script>
function contenidoCelda()
{
var table= $('#tabla_results');
cells = $('td');
for (var i=0,len=cells.length; i<len; i++)
{
cells[i].onclick = function()
{
var formData2 = new FormData(document.getElementById("formulario"));
formData2.append("gen_id",(this.innerHTML));
$.ajax({
type: "POST",
url: "test.php",
data: formData2,
cache: false,
processData: false,
contentType: false,
success: function(data)
{
alert(data);
window.open('test.php', '_blank');
}
});
}
}
}
</script>
我想使用我在test.php文件中发送的数据,而不是将其返回到results.php,在test.php中使用,以生成dinamycally内容。
这是test.php
<?php
$data = $_POST['gen_id'];
system("mkdir $data");
echo "Hola";
echo $data;
echo '<xmp>';var_dump($data);echo '</xmp>';
?>
<html>
<link href="css/ui-lightness/jquery-ui-1.9.1.custom.css" rel="stylesheet">
<script src="js/jquery-1.8.2.js"></script>
<script src="js/jquery-ui-1.9.1.custom.js"></script>
<body>
<form>
<p id = "testing"> Test page </p>
<?php if($data == "ENSMUSG00000047751") {echo "Good";} else {echo "Bad";} ?>
</form>
</body>
所以在test.php中,如果我点击表中的genid,它必须显示Good 但它显示Bad,并返回Good到results.php
我创建一个目录的测试,我点击的genid工作正常
我必须做什么?
答案 0 :(得分:1)
在$ .ajax通话中,尝试设置:
$.ajax({
type: "POST",
url: "test.php",
data: "testing123",
cache: false,
processData: false,
contentType: false,
});
看看是否创建了dir test123,然后回复。
如果没有,那么问题在于这两行,特别是你对var formData2的定义:
var formData2 = new FormData($('#formulario')[0]);
formData2.append("gen_id",(this.innerHTML));
检查输入错误,例如逗号代替分号:
var table = document.getElementById('tabla_results'), <-- THIS IS A COMMA. TYPO?
cells = table.getElementsByTagName('td');
此外,你有jQuery和javascript的混合。为什么不标准化jQuery?例如,上面的两行将在jQuery中以这样的方式编写:
var table = $('#tabla_results');
cells = $('td');
打字少得多,是吗?
另外,我确定你有,但你确定你已经包含了jQuery库的链接吗?如:
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
答案 1 :(得分:0)
我认为问题在于您定义formData2
的方式:
var formData2 = new FormData($('#formulario')[0]);
导致formData2
实际上不是FormData。
尝试将其切换为:
var formData2 = new FormData(document.getElementById("formulario"));
这应解决数据问题。
编辑:关于您的问题的修改,如果您想将结果发布到其他页面,则根本不需要使用ajax。只需在表单提交上使用javascript添加带有ID的附加字段(如果您不能像隐藏字段那样添加它...)并使用普通表单提交。