PHP,无法通过$\u POST设置变量
我有一个稍微令人沮丧的问题。。。 我通过AJAX向PHP发送了一个表单值,看起来效果不错。 当我在PHP中执行var_dump时,我看到了我的值,我还可以设置一个变量并正确地回显它。 但是, $prod_id=$_POST['product'] 在浏览器中导致未捕获类型错误。 如果我只是在PHP中用文本设置变量,一切都很好。 总而言之,这段代码运行良好:PHP,无法通过$\u POST设置变量,php,jquery,ajax,Php,Jquery,Ajax,我有一个稍微令人沮丧的问题。。。 我通过AJAX向PHP发送了一个表单值,看起来效果不错。 当我在PHP中执行var_dump时,我看到了我的值,我还可以设置一个变量并正确地回显它。 但是, $prod_id=$_POST['product'] 在浏览器中导致未捕获类型错误。 如果我只是在PHP中用文本设置变量,一切都很好。 总而言之,这段代码运行良好: $prod_id=("Slab Skate"); $selected_customers = mysqli_query($link,"SELE
$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'");
此代码导致未捕获类型错误:
$prod\U id=$\U POST['product']
与上面相同的SQL语句。
如果我这样做
var_dump$prod_id
使用$\u POST设置后,我得到:
滑冰板
Chrome开发者工具的“网络标题”选项卡中的“我的表单数据”显示:
产品:滑板
我不明白
提前谢谢你的提示
更新和一些澄清。
我得到的错误是:uncaughttypeerror:无法读取null的属性“documentElement”,这是代码后面某个函数产生的Javascript错误。然而,由于如果我硬编码变量而不是从$\u POST设置变量,那么整个过程都是有效的,因此我的假设是错误必须存在于PHP中。
但也许事实并非如此
我正在做的是:将表单值发布到PHP->使用值从我的sql中选择并准备XML输出。到目前为止还不错,我可以在Chrome开发工具中看到xml输出,但随后我返回javascript从PHP文件中获取xml输出,结果失败。
考虑到这一点,很明显,为什么它使用的是硬编码变量而不是$u POST set变量。
因此,我看到两种解决方案,或者在我的sql中设置PHP变量,或者更智能地使用javascript。
有人有聪明的解决方案吗?我可以发布所有的代码,但是很长
第二次更新:
我通过向服务器写入一个xml文件而不是从php文件下载来解决这个问题。这样我的java函数就可以正确地处理xml了。
它确实有效,但我不确定它的伸缩性如何?最好是直接处理PHP的xml输出,而不是先将其保存到文件,然后再进行处理。但是,我不知道差别有多大
/Tim如果我是你,在使用内部联接时,我不会使用SELECT*FROM。这会导致各种各样的问题,只需给出列的名称。您会遇到什么错误?此外,请使用准备好的语句。仅供参考,请继续阅读,因为您发布的代码易受攻击。如果您粘贴整个错误,您可能会得到更多帮助。除了需要SQL注入修订外,请确保您的$prod_id=$\u POST['product'];实际分配一个ID值,而不是一个不能在数据库表中用作ID的字符串…将var_dump结果复制到此处,以确保变量实际已被传递,并且具有正确的名称