这个问题的背景是它是用户审查所需的一组测量。我正在审查我的一些代码并将其更改为bootstrap的类。我有一个PHP函数 - reviewSlide();打印出必要的HTML。从那里它调用javascript脚本 - reviewGetMeasurement();用于获取用户输入的测量值。
触发javascript函数的事件是 -
<button onclick="slideforms_step17(event);reviewGetMeasurement();" class="mdk_slidesforms_btn"><?= (!empty($button_text)) ? $button_text : 'Next' ?></button>
然后函数运行进入下面的函数reviewSlide()但是如果我有以下代码,那么一切都运行得很好并且测量结果被收集并打印到页面上。
function reviewSlide() {
<table>
<tr width="33%">
<table class="pktsq_measurement_table_my_account_table">
<tr>
<td colspan="2" class="pktsq_measurement_table_my_account_td pktsq_measurement_table_my_account_td_title">
Personal
</td>
</tr>
<tr>
<td class="pktsq_measurement_table_my_account_td">
Height
</td>
<td class="pktsq_measurement_table_my_account_td pktsq_measurement_table_my_account_td_measurement" id="userHeight"></td>
</tr>
</table>
</tr>
</table>
...
}
如果删除上表,则无效。
我试过了
function reviewSlide() {
<p id="userHeight"></p>
<p id="userWeight"></p>
...
}
位于我的函数顶部(位于表格上方的此阶段)并且没有任何内容出现。
我看过其他人的问题,一些主要问题是页面没有加载,你必须等待页面加载,因为javascript不会看到任何HTML。但我相信我在这里有一个关于表格代码的奇怪问题
任何帮助都会感激不尽。谢谢。
更新和澄清(与评论相同):
我没有写这个,所以请耐心等待,但是是的评论滑动是在PHP中。为了澄清我在shortcodes.php文件中有一个函数stepxx()。每个步骤代表一张幻灯片,而reviewSlide()也代表另一张幻灯片,在这种情况下,评论幻灯片包含所有测量。所有这些都是用html / php编写的。在stepxx()中有一个按钮标记,它调用javascript函数slideforms_stepxx(event);.当每个步骤完成1-xx时,调用slidesforms_stepxx(event)来检查输入。
这是我们查看评论幻灯片的地方。在评论幻灯片之前的幻灯片上,我们进入slideforms_step17检查输入并通过jquery将值提交给服务器。然后我们通过<button onclick="slideforms_step17();reviewGetMeasurement();....>
输入reviewGetMeasurement()函数,如上所示。 ReviewGetmeasurement的任务是打印出值,这就是我的问题所在。
在reviewGetMeasurements()中,如果我打印出变量的值,让我们通过console.log(高度)说出高度,它就可以工作,我可以在控制台中看到该值。但是,如果我尝试通过执行
来打印我们的值document.getElementById("userHeight").innerHTML = height + "cm";
我得到了空。但我知道有一个值高度,它不是空的。但是,如果我从上面放置<table>
代码,它将起作用,并打印出值。如果我使用具有正确ID的<p>
标记,则无效。
答案 0 :(得分:2)
你不能盲目地将HTML放在Javascript或PHP函数中。这些函数中的内容必须是适当的代码类型,而不是HTML。
如果是Javascript,那么使用Javascript就可以创建DOM元素,然后将它们插入到页面中。
如果PHP在服务器上的页面渲染时间运行,那么你可以使用PHP的echo将内容插入到页面中。
如果它是在Ajax调用中运行的PHP,那么你也可以使用echo来构建对Ajax调用的响应。
以下是使用Javascript函数从用户事件向页面插入内容的示例:
function insertContent(html) {
var div = document.createElement("div");
div.innerHTML = html;
document.body.appendChild(div);
}
document.getElementById("run").addEventListener("click", function() {
insertContent(document.getElementById("newContent").value);
});
<input id="newContent" value="Some Text"> <button id="run">Insert</button>