我正在为应用程序使用codeigniter。首先,我创建了一个View,它由Message TextArea Box,DropDownlist组成,其值来自数据库,以及提交按钮。我有两个列的数据库,一个用于手机号码,另一个用于服务提供商。我有预定义的URL,带有查询字符串值(http://www.something.com?mobno=numbervar&msg=messagevar)
在模型类中,我有一个名为getProvider1的函数,用于返回特定提供者的移动号码数组。我应该使用上面的url与查询字符串传递用户输入的手机号码和消息。在这里,我使用foreach循环通过查询字符串将消息传递给不同的手机号码。
问题是我无法知道如何在不访问something.com页面的情况下将消息传递给多个手机号码并显示哪些查询字符串值已通过且哪些失败...这里,我不能使用foreach传递该url中的不同查询字符串值。它只访问了一个页面或重定向一次....是否有任何函数类似redirect()....或任何其他选项。请想要一些建议...将不胜感激....以下是控制器发送消息的功能
function message()
{ $message = $this->input->post('message');
$provider = $this->input->post('provider');
if($provider == 'provider1')
{
$number = $this->message_model->getProvider1();
$mobile = array();
foreach($number as $no)
{
$mobile = $no;
redirect('http://something.com?mobno='.$mobile.'&msg='.$message);
}
}
else if
{
// same process for service provider2
}
else
{
//other service provider
}
}
答案 0 :(得分:0)
首先,我不是100%确定你想要做什么,但重定向显然只能工作一次(因为重定向后你不再在你的页面上)。
根据我对您的代码的理解,您可以做的是cURL。它使您有机会加载多个页面并在“幕后”查看其结果,并向用户显示您想要的任何内容。
其他一些说明。
/* Instead of doing the same thing for all provides with IFs, rewrite you message model to take the provider name as a input variable insdead. */
$number = $this->message_model->getProvider($provider);
/* $mobile = array(); // you never use this array, no need for it */
foreach($number as $mobile)
{
/* $mobile = $no; //completly useless, just name it in the foreach */
/* --- do a cURL request here --- */
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://something.com?mobno='.$mobile.'&msg='.$message);
$curl_info = curl_getinfo($curl);
curl_close($curl);
if ($curl_info['http_code'] != 200) /* Handle error if any */
{
$errors[] = 'ERROR WITH REQUEST: http://something.com?mobno='.$mobile.'&msg='.$message;
}
}