Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,无法通过$\u POST设置变量_Php_Jquery_Ajax - Fatal编程技术网

PHP,无法通过$\u POST设置变量

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

我有一个稍微令人沮丧的问题。。。 我通过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'"); 
此代码导致未捕获类型错误:

$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结果复制到此处,以确保变量实际已被传递,并且具有正确的名称