这是我的代码,我需要在$ testar中将数组值插入到表Patients_testings中。但它不能使用此代码,错误在哪里?如果我可以使用一个全局变量来做到这一点。它会更有帮助。谢谢。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var lmName = (ss.getName() + "_2016-11");
var lmfoldername = ('2016-11-Update');
var lmFolder = DriveApp.getFoldersByName(lmfoldername).next();
DriveApp.getFileById(ss.getId()).makeCopy(lmName, lmFolder);
答案 0 :(得分:0)
我认为您缺少的概念是,当请求页面时,以及在每个后续表单提交时,执行PHP代码然后退出,这会抛出存储在内存中的变量的值。使变量成为全局变量不会使它们在请求之间保持不变。
第一次提交表单时isset($_POST['submittestin'])
为true
,并成功使用数据填充$testar
变量。但是,在isset($_POST['submittestin'])
的第二篇帖子false
上,您永远不会点击if (isset($_POST['printinv']))
部分。现在,即使您将if (isset($_POST['printinv']))
移到第一个if ... submittestin
之外,您仍然会遇到问题,因为$testar
将不再填充数据。
此外,您使用的变量从未在我能看到的任何地方进行初始化。 $ref_no
就是一个例子。
我还建议echo
在运行数据库查询之前查看它们是否格式正确。我认为其中一些可能在某些地方缺少'
。
最好的方法是开始一个会话。通过启动会话,您可以将变量保存在$_SESSION
数组中,然后在不同的请求中访问它们。
注意:您无法序列化resorces
,因此您需要在每个请求时重新连接到数据库。即,这不起作用:$_SESSION['dbhandle'] = $dbhande;
另一种在表单中设置<input type=hidden ...
元素的方法,以便在第二篇文章中您可以通过$_POST
变量再次访问它们。
<?php
session_start();
?>
<form role="form" method="post" action="" name="testing" onsubmit="return validate_form()">
<?php
$sqltestin = "SELECT * FROM testings";
$querytestin = mysqli_query($dbhandle, $sqltestin);
while ($rowtestin = mysqli_fetch_assoc($querytestin)) {
echo '<input type="checkbox" name="testingar[]" value="' . $rowtestin['TestId'] . '">' . $rowtestin['TestName'] . '<br>';
}
?>
<div class="modal-footer">
<input type="submit" name="submittestin" id="submittestin" class="btn btn-success" value="Add Tests">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</form>
</div>
</div>
</div></div>
<?php
$checkBox = '';
$testar = '';
if (isset($_POST['submittestin'])) {
global $checkBox;
global $testar;
$checkBox = $_POST['testingar'];
foreach ($checkBox as $testar1) {
$testar .= $testar1 . ",";
}
$_SESSION['testar'] = $testar;
$_SESSION['ref_no'] = "This gets used below but I don't see it initialized anywhere?";
$tot = 0.00;
for ($i = 0; $i < sizeof($checkBox); $i++) {
$queryt2 = "SELECT * FROM testings WHERE TestId = '".$checkBox[$i]."'"; // syntax issue here
$resultt2 = mysqli_query($dbhandle, $queryt2) or die (mysql_error());
while ($rowt2 = mysqli_fetch_assoc($resultt2)) {
echo "<tr><td>" . $rowt2['TestName'] . "</td>";
echo "<td width='100'>" . $rowt2['specimen'] . "</td>";
echo "<td>" . $rowt2['HopePrice'] . "</td></tr>";
//echo '<br/>';
$tot = $tot + $rowt2['HopePrice'];
}
}
echo "<tr><td><b>Total</b></td><td <b>:</b></td><td><b>" . number_format($tot, 2) . "</b></td></tr>";
echo "<tr><td><form role='form' method='post' action=''>";
echo "<input type='submit' name='printinv' id='printinv' class='btn btn-success' value='Print'>";
echo "</form></td></tr>";
}
//echo $testar;
if (isset($_POST['printinv'])) {
if(isset($_SESSION['testar']) {
$testar = $_SESSION['testar'];
$ref_no = $_SESSION['refno'];
$sqltnum = "INSERT INTO patients_testings VALUES ('$ref_no', '$testar')"; // Where is $ref_no set?
if (mysqli_query($dbhandle, $sqltnum) or die (mysql_error())) {
echo "Entered Successfully";
}
}
}
?>