我正在编程一个具有嵌入式按钮的电报机器人。要打印嵌入式按钮,我首先需要设置一个“键盘”。
“键盘”由我打印时将出现的按钮组成。
嵌入式键盘示例是这样的:
$tastieraStart='[{"text":"Menu","callback_data":"StampaMenu"},{"text":"Carrello","callback_data":"VisualizzaCarrello"}],[{"text":"Prezzario","callback_data":"Prezzario"}]';
此键盘在第一行中可视化2个按钮(Menu和Carrello),在第二行中可视化1个按钮(prezzario)
就我而言,我需要创建一个键盘来动态地从数据库中获取数据
/*THIS IS HOW I USUALLY PRINT A BOT INLINE KEYBOARD*/
$tastieraStart='[{"text":"Menu\n'.$menu.'","callback_data":"StampaMenu"},{"text":"Carrello\n'.$carrello.'","callback_data":"VisualizzaCarrello"}],[{"text":"Prezzario\n'.$prezzario.'","callback_data":"Prezzario"}]';
editMessageText($queryUserId,$querymsgid,"Benvenuto ".$name.", da oggi sarò il tuo barista personale! \xF0\x9F\x98\x89 \nCome posso servirti?",$tastieraStart,"inline");
在下面看到的代码中,我仅选择所需的元素并将其添加到键盘。该代码有效,如果我尝试打印键盘,它将以正确的格式打印。
当我想将其用作键盘时,我的机器人仅打印“ 1”。我不知道这个“ 1”是从哪里来的。
if($querydata=="Freddo")
{
$CONT="SELECT COUNT(*) AS totale FROM ListinoProdotti WHERE categoria='freddo'";
$resultCONT=$conn->query($CONT);
$row = $resultCONT->fetch_assoc();
$COUNT=$row['totale'];
editMessageText($queryUserId,$querymsgid,$COUNT);
$QueryFreddo="SELECT * FROM ListinoProdotti WHERE categoria='freddo'";
$resultFreddo=$conn->query($QueryFreddo);
$row = $resultFreddo->fetch_assoc();
$tastieraTemp="'";
for($i=0;$i<$COUNT;$i++)
{
$prezzoTemp=$row['prezzo'];
$prodottoTemp=$row['prodotto'];
$tastieraTemp=$tastieraTemp."[{'text':\"".$prodottoTemp.$prezzoTemp."\",'callback_data':\"POSVER\"}]";
if($i<=$resultCONT)
{
$tastieraTemp=$tastieraTemp."'";
}
else
{
$tastieraTemp=$tastieraTemp.",";
}
}
$tastieraFreddo=$tastieraTemp;
editMessageText($queryUserId,$querymsgid,"Seleziona ciò che desideri ordinare:freddo",$tastieraFreddo,"inline");
exit();
}
这也是我用来编辑上一个键盘的功能
慕村225694