PHP,不能通过$ _POST设置变量

时间:2014-04-23 07:27:03

标签: php jquery ajax

我有一个令人沮丧的问题...... 我通过AJAX向PHP发送一个表单值,这似乎工作正常。 当我在PHP中执行var_dump时,我看到了我的值,我也可以设置一个变量并正确回显它。 但是,行

$prod_id=$_POST['product'];

在浏览器中导致未捕获的类型错误。 如果我只是在PHP中使用文本设置变量,一切正常。 总而言之,这段代码可以正常工作:

$prod_id=("Slab Skate");
$selected_customers = mysqli_query($link,"SELECT * FROM customers
INNER JOIN cust_products on cust_products.cust_id=id
INNER JOIN products on products.prod_id=cust_products.product_id
WHERE products.prod_name='$prod_id'"); 

此代码导致未被捕获的typerror:

$prod_id=$_POST['product']

与上面相同的SQL语句。 如果我做

var_dump ($prod_id);

用$ _POST设置后我得到:

string(10) "Slab Skate"

Chrome开发者工具的网络标题标签中的表单数据说:

product:Slab Skate

我不明白......

提前感谢任何提示。

更新和一些澄清。 我得到的错误是这样的:“未捕获的TypeError:无法读取null的属性'documentElement'”这是来自代码中稍后的函数的Javascript错误。但是,因为如果我对变量进行“硬编码”而不是从$ _POST设置它,整个过程都有效,我的假设是错误必须驻留在PHP中。 但也许情况并非如此......

我正在做的是:将表单值发布到PHP - >使用value从my_sql中进行选择并准备XML输出。到目前为止一切顺利,(我可以在Chrome开发工具中看到xml输出),但后来我回到javascript来从我的PHP文件中获取xml输出然后它失败了。 在考虑它时,很明显为什么它使用“硬编码”变量而不是$ _POST设置变量。 所以,我看到两个解决方案要么在my_sql中设置PHP变量,要么更智能地使用javascript。 有人有智能解决方案吗?我可以发布所有代码,但它很长。

第二次更新: 我通过将xml文件写入服务器而不是尝试从php文件下载来解决了这个问题。然后我的java函数可以正确处理xml。 它确实有效,但我不确定它的扩展程度如何?最好直接从PHP处理xml输出,而不是先将其保存到文件然后进行处理。但是,我不知道差异有多大......

/添

1 个答案:

答案 0 :(得分:0)

如果我是你,我在使用SELECT * FROM时不会使用Inner Join。这会导致所有类型的问题,只需给出列的名称。

相关问题