我不确定wordpress是否有什么内容,或者我正在做什么,但在页面模板中实现时,我无法获得在线教程。例如,此http://www.computersneaker.com/submit-a-form-without-page-refresh-in-php-using-jquery/ 修改$query和mysql调用以仅回显$name的教程;我会解释我的实际问题,也许有人能看出我的误解。
这篇文章的标题听起来是一样的Ajaxify Form That Submits To Same Page To Display Post Data 但除了没有答案,内容似乎有所不同。
我想做的是创建一个具有不同输入的表单。用户单击enter按钮,然后更新同一页面上的表。基本上,他们输入的数据在数据库中搜索,进行一些计算,然后结果显示在表格中。它使用大量数组,并使用$wpdb->get\\u results连接到数据库。
我正在使用do\\u shortcode和POST,如果这改变了什么的话。
我的结构是在同一页上做;
<form action ="" method="post">
Enter Your Age <input type="number" min="1" name="age" style="width:50px;">
Select Field
<select name="field">
<option value="P">Field P</option>
<option value="M">Field M</option>
<option value="C">Field C</option>
</select>
<div class="input_fields_wrap">
<button class="add_field_button">Add Field</button><br><br>
<div>Field Name: <input type="text" name="fieldname[]">
Total Datum:</td><td><input style="width:50px;" name="datum[]" type="number" min="1" id="datum">
</div>
<input type="submit" name="test" value="Calculate"/>
</form>
在此基础上,我尝试解析变量
if(isset($_POST["fieldname"])){
$capture_field_vals ="";
foreach($_POST["fieldname"] as $key => $text_field){
$capture_field_vals .= $text_field .", ";
$dataset[] = $text_field;
}
foreach($_POST["field"] as $key => $text_field){
$capture_field_vals .= $text_field .", ";
$field[] = $text_field;
}
$field = $_POST["field"];
}
然后我做了一些算法工作,将变量与$wpdb->get\\u结果进行比较。
最后,我把结果放在页面的表格中。
这目前可以正常工作,但当按下提交按钮时,页面会刷新,用户输入的数据会消失,但表会正确更新。我很难找到有关如何执行此操作的信息。当我查找如何停止页面刷新时,教程都是关于将数据发送到数据库并将代码放在不同的文件中。我需要表格始终在页面上,在输入数据之前,表格中只包含0。然后将这些值保留在表单中,并在按下按钮时更新表格。这是否可能在同一个文件中执行,还是我误解了一个基本问题?
SO网友:Bysander
如果我理解正确
您需要原始表单来显示刚刚发布的内容的值您还需要该表在尚未计算的值上显示0此时,通过提交刷新页面,表可以完美地计算信息您可以使用if(isset($_POST["fieldname"])){
您可以使用上面的变量来执行此操作。
if(isset($_POST["fieldname"])){ echo $_POST["fieldname"]
将回显已发布内容的值(文本框中的文本)。在您的情况下,它是一个复选框,因此您可以使用
like this instead:
<input type="checkbox" name="txtCheck" value="your value" <?php if(isset($_POST[\'txtCheck\'])) echo "checked=\'checked\'"; ?> />
你可以对桌子做同样的操作。如果您希望在计算前将其设置为0(不查看表代码)
在你的手机里有这样的东西:
if (empty($cellvalue)) echo \'0\'; //If there is no data to display show 0
else echo $cellvalue;