2013-07-17 40 views
0

我第一次添加了一些巨大的东西,混合JS,PHP,THREE和其他很多东西。这是我试过的。通过JS将POST数据传递给PHP失败

当有人点击THREE.js场景到人体上时,选择人体的一部分,然后将javascript添加到我想用PHP/MySQL将选定内容保存到数据库中的一个。

THREE.js场景起作用,我可以选择/取消选择事物并生成动态HTML输出。例如,我得到这样产生的一种形式:

<canvas width="1680" height="949"></canvas> 
<div id="Description">Will be added to database:</div> 
<form id="BodyParts" method="POST" action="index.php?s=cinput"> 
    <input type="checkbox" id="leg_right" name="leg_right" disabled="" value="leg_right"> 
    <div id="leg_right_Description">Rechtes Bein</div> 
    <input type="checkbox" id="leg_left" name="leg_left" disabled="" value="leg_left"> 
    <div id="leg_left_Description">Linkes Bein</div> 
    <input type="checkbox" id="torso_top" name="torso_top" disabled="" value="torso_top"> 
    <div id="torso_top_Description">Obertorso</div> 
    <input type="submit" value="Speichern" id="Submit"> 
</form> 

因此,在点击提交我只是用的var_dump($ _ POST)按钮后,在我接收cinput.php文件。但它给出了一个空阵列。然而,当试图重新加载网站时,Chrome告诉我一些数据已经发送,我需要再次验证。你知道我的意思。上述生成的HTML表单无法正常工作,并且不会发送我可以在PHP中使用的POST数据?

+2

如何发布一些可读代码而不是单行? – Styphon

+0

@ Styphon:因为没有什么可以发布的。上面的代码是从我的JS/THREE.js场景中自动生成的表单,我点击了它。它基本上就是使用var_dump($ _ POST)提交的form()和接收文件;没有什么可以发布的! – Shiuyin

+0

这并不会阻止你进入和格式化它,因此它是可读的。 –

回答

3

您在所有输入字段中都有disabled属性。即使该属性值为空(""),该属性的存在也​​会导致该字段被禁用。已禁用的字段是不是与表单的其余部分一起提交。由于您的整个表单只有禁用的输入,因此您完全不提交任何内容。

例如

<input type="text" value="foo" disabled="" /> 
<input type="text" value="bar" disabled="false" /> 
<input type="text" value="baz" disabled="disabled" /> 

所有这三个输入都被禁用,即使通过“人类”逻辑,你也希望只有最后一个被禁用。

您的提交按钮未被禁用,但由于没有name属性,因此它也不会向表单提交任何内容。

+0

咦?我添加了它们是因为我想将这些复选框设置为“只读”。正如你所说的“残疾”不像“只读”。 Pfff。谢谢! – Shiuyin

+0

禁用将它们变成基本上窗口装饰。它们看起来像输入元素,但不像输入元素那样激活。只读启用它们,但不可更改。 –

+0

嗯,但是当我现在使用JS来设置input.readonly = true;我仍然可以更改复选框的值(我可以选择/取消选择)。为什么? – Shiuyin