gpt4 book ai didi

javascript - PHP:如何根据数百个用户选项提供定制内容?

转载 作者:行者123 更新时间:2023-11-30 16:12:06 26 4
gpt4 key购买 nike

我正在处理一个很长很长的用户表单,然后会导致自定义显示。

必须逐段策划最终显示,以适应用户的输入。

我的第一次尝试是所有 if 语句:

if($input_a && $input_b && $input_c !== $input_d) :

echo result;

if($input_a === 'example') :

return false;

endif;

if($input_b !== 'example') :

echo $input_c * $input_d;

endif;

endif;

这变得非常困惑,尤其是当我必须在 JS 和 PHP 之间传递此逻辑的结果时。

我的下一次尝试是根据一些输入(“x”表示没有输入)为每个用户构建自定义字符串:

$code = array('x', 'x', 'x', 'x', 'x', 'x');

if($input_a && $input_b && $input_c !== $input_d) :

$code[0] = 1;
$code[1] = 1;

if($input_a === 'example') :

$code[2] = 1;

else:

$code[2] = 0;

endif;

if($input_b !== 'example') :

$code[3] = 1;

else :

$code[3] = 0

endif;

else :

$code[0] = 0;
$code[1] = 0;

endif;

因此,在上面,字符串将读作类似 '01x0' 的内容。现在我可以根据他们的输入为用户分配此代码。在逻辑上更进一步,我可以检查此代码以决定是提供某些内容 block 还是隐藏其他内容 block 。

如果我想检查第一个和第四个输入是否匹配,但不关心第二个和第三个,我可以这样做:

// 'x' is a placeholder for code items I don't care about
$result_option = '1xx1';

$pattern = '/[' . $code[0] . 'x][' . $code[1] . 'x][' . $code[2] . 'x]/';

if(preg_match($pattern, $result_option) :

echo $result_option;

endif;

好的,这样就可以了。

但我觉得我正在重新发明轮子,最终我的代码字符串将达到一百个字符长。

有没有更好的方法来根据数百个用户选项提供定制内容,而不涉及一百个嵌套的 if 语句类?

编辑:

为了更清楚地说明我要完成的任务,假设填写表格。他们说他们有房有车,而且欠了很多债。

对于该用户,我想向他们展示有关处理债务的内容,仅此而已。

另一个用户填写表单。他们说他们租房和租车,而且他们的债务适中。

对于那个用户,我想显示相同的债务内容,稍微修改一下,因为他们的债务不那么极端。除此之外,我想展示有关买房和购买二手车的好处的内容。

每个用户都有独特的属性组合,并且为每个属性提供自定义内容。

最佳答案

我同意 Kyle 的观点——插入数据库,然后创建一个类来处理查询新数据库记录的数据操作。

举个简单的例子:

  1. 用户在页面上的表单中输入所有数据
  2. 用户提交表单
  3. 在随后的页面上,您要做的第一件事是在 MySQL 表中创建一条(或多条)新记录并获取新创建的 ID备案
  4. 现在您可以有一个类或一组类来处理每个数据点或数据集

我不是很清楚你的最终目标,但我可能会使用一个模板页面来实例化上面引用的类,并且对于我想要显示的每个数据点,我调用该对象中的一个函数来完成业务逻辑。它不一定是比直接使用 $_POST 数据更好的解决方案,但对我来说,这种方法可以帮助我以一种干净、简化的方式从逻辑上分解任务。(注意:这应该可以解决嵌套的“if”问题,但本身可能不会缩短您的代码。)

更新:我实际上做了一些类似于您正在谈论的事情,但自定义内容少得多,我使用 .txt 模板文件,然后基本上解析它。模板(静态的):

<p>
Hi {recipientFname},<br>
{senderFname} has nominated you for membership into blah blah. As per your conversation with him, visit the site by following the below URL for your next steps.<br><br>
{choiceLines}
</p>

然后我有一个可以锻炼所有肌肉的类(class),但重要的部分在这里:

    $arr_tpl_vars = array('{salutation}',
'{directMessage}',
'{referralMessage}',
'{senderFname}',
'{parentFname}',
'{parentLname}',
'{memberFname}',
'{memberLname}',
'{recipientFname}'
);
$arr_tpl_data = array($this->recipient_salutation,
$directMessage,
$referralMessage,
$this->sender_fname,
$this->parent_fname,
$this->parent_lname,
$this->memberFname,
$this->memberLname,
$recipFname);
$msg = str_replace($arr_tpl_vars, $arr_tpl_data, $msg_tmpl);

使用上面的代码,我基本上加载了模板,为它提供了要查找的字符串数组(所有可替换的内容都用 {string} 表示),然后函数替换了所有内容。

在您的情况下,我将定义要在业务逻辑函数中使用的文本(例如:$this->recipient)...

关于javascript - PHP:如何根据数百个用户选项提供定制内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36088615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com