在不刷新的情况下与表单同页显示数据

时间:2014-09-30 作者:user-2147482637

我不确定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。然后将这些值保留在表单中,并在按下按钮时更新表格。这是否可能在同一个文件中执行,还是我误解了一个基本问题?

1 个回复
SO网友:Bysander

如果我理解正确

您需要原始表单来显示刚刚发布的内容的值您可以使用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;

结束

相关推荐

建议在WP/插件开发中使用Bootstrap还是JQuery-UI?

Bootstrap最近似乎越来越流行,给人一种一致的响应对话框和表单的感觉。现在和将来,使用引导程序或jQuery UI处理对话框、选项卡、表单等通常是最佳实践吗。?据我所见,它们可能都有优势:对于引导:这是一个较新的库,不太可能干扰5个版本之前jQuery ui中包含的、不再受支持的jQuery ui css插件。(不幸的是,它可能与jQuery ui冲突,需要解决办法)。Bootstrap的特性使得Javascript代码对于简单的东西不那么必要。(例如,可以从具有属性目标的按钮打开对话框)。对于jQ