使用ThickBox 3.1并对其感到遗憾,因为它不再受支持,所以我可以使用所有我可以获得的帮助。将变量传递到Thickbox中
我几乎完成了在我的网站上设置几个Thickbox,但我最后一个需要一个变量从父页面传递到ThickBox,我似乎无法在我的PHP脚本中选择它。我有一个从当前选择的下拉菜单获取变量的父页面。当我将鼠标悬停在将打开的ThickBox莫代尔我看到链接:因为我需要strUser的变量,它是伟大的
http://localhost/forms/modal_product.html?strUser=100&TB_iframe=true&height=300&width=590
。所以ThickBox打开后,我将一些信息输入到一个简短的表单中,就像我的其他ThickBoxes一样,但没有任何反应。当我看到下萤火看到它告诉我的AJAX回应是:
<b>Notice</b>: Undefined index: strUser in <b>C:\xampp\htdocs\forms\item_add.php</b> on line <b>3</b
我用尽看到的$ _ SERVER [“QUERY_STRING”];想出来,它是NULL。
我觉得我的问题是通用的,我只是不知道我的_GET变量在哪里?任何有ThickBox经验的人都可以帮我解决问题吗?我读过我的屁股,我意识到在较旧版本的ThickBox中很难传递变量,它需要黑客,但我应该能够按照我拥有的方式来做到这一点。我究竟做错了什么?有更简单的方法来传递变量,或者我只是错过了一些明显的东西吗?
此外,当我直接访问我的表单页面而不是通过父窗口的链接时,如果手动将GET变量放入URL中,它仍然会给我带来相同的错误,导致我相信我只是缺少基本的东西。这是我的PHP代码。
<?php
include '../dbc.php';
$getman = ($_GET['strUser']);
$manid1 = mysql_query("SELECT manufacturer_id FROM manufacturers WHERE man_name='$getman'");
$manid11 = mysql_fetch_array($manid1);
$manid21 = $manid11[0];
if ($_POST) {
// Collect POST data from form
$item_num = stripslashes($_POST['item_num']);
$descript = stripslashes($_POST['descript']);
$quanti = stripslashes($_POST['quanti']);
$fdaa = stripslashes($_POST['fdaa']);
}
$params = $_SERVER['QUERY_STRING'];
$domain = $_SERVER['SCRIPT_NAME'];
$queryString = $_SERVER['REQUEST_URI'];
$stmnt2 = mysql_query("INSERT INTO products (product_id, item_number, description, quantity_per_unit, fda_approved, manufacturer_id) VALUES ('NULL', '" . $item_num . "', '" . $descript . "' ,'" . $quanti . "', '" . $fdaa . "' , '" . $manid21 . "')");
$resp['status'] = 'success';
if ($stmnt2) {
$resp['errmessage'] = "Item submitted. Submit another item or click close.";
} else {
$resp['errmessage'] = $params;
}
echo json_encode($resp);
?>
所以,如果你直接进入'http://localhost/forms/modal_product.html?strUser = 100',它*不工作?你为什么使用$ _GET **和** $ _POST? – 2011-12-31 12:21:25
我解决了它。我不得不从URL中取出Jquery中的变量,把它放到一个隐藏的字段中,然后运行我的PHP脚本。 – 2011-12-31 13:24:55