【发布时间】:2010-08-14 22:53:35
【问题描述】:
我编写了一个总体上运行良好的小脚本,它只需要一个小修复和一些 Ajax 代码。基本上,它为每个输出行附加了几个表格。提交工作正常,2 POST 和 1 GET。但我希望它在没有页面刷新的情况下发生,因此 Ajax 代码。我试过弄乱一些,但多个变量使它成为一场噩梦。这是完整的代码,首先是主页:
<html>
<head>
<title></title>
</head>
<body>
<?php
$lines = file('file.txt');
foreach ($lines as $line) {
$field = explode("|", $line);
$name = $field[0];
$id = $field[4];
echo $name . '<br>';?>
<form method="post" action="submit-here.php?id=<?php echo $id;?>">
<select name="FORM1" size="3">
<option value="Value-1">Value-1</option>
<option value="Value-2">Value-2</option>
<option value="Value-3">Value-3</option></select>
<select name="FORM2" size="3">
<option value="Value-4">Value-4</option>
<option value="Value-5">Value-5</option>
<option value="Value-6">Value-6</option></select>
<br><br><input type="submit" value="submit" name="submit">
</form>
<?php
}
?>
</body>
</html>
file.txt 只是您常用的 DSV 平面文件,即 field1|field2|field3|field4\n
这让我想到了我提到的所需的小修复,即每行末尾的换行符在每个合法表单对之后生成一对“幻像”表单,添加更多换行符并获得更多幽灵代码,我试过了使用 preg_replace 和 if...else 过滤掉它们但没有成功。
提交-here.php:
$id = $_GET["id"];
$FORM1 = $_POST["FORM1"];
$FORM2 = $_POST["FORM2"];
$write = $id . '|' . $FORM1 . '|' . $FORM2 . "\n";
$fn = "file2.txt";
$fh = fopen($fn, 'a');
fwrite($fh, $write);
fclose($fh);
【问题讨论】:
-
你能展示一下你尝试过的 if 语句和/或 preg_replace 调用吗?