非常感谢你的时间。
我正在为我的业务创建CRM。这将是非常基本的,但包括我的行业在CRM中特别需要的一些关键功能,而且似乎不存在于任何地方,但我离题了。
我目前正在网络应用中搜索搜索功能,搜索客户端并在搜索表单正下方的下拉菜单中返回结果。在该列表中选择客户端后,用户将被重定向到显示与该客户端相关的所有信息的页面。
我的问题与此搜索功能有关。我目前在搜索结果中将结果作为ECHO返回,它看起来非常混乱。 PHP最终隐藏在html表单中。必须有一种更简单,更简洁的方法来将结果作为列表返回。
SIDE注意:返回的搜索结果甚至不必在下拉列表中,我只是随着时间的推移而来到这个解决方案,因为它允许我将所选用户传递给下一个PHP使用ID的隐藏表单字段轻松地在下一页上编码。
这是我到目前为止所做的事情。有人可以帮我清理一下吗?
import Foundation
import UIKit
import GoogleMaps
import GooglePlaces
class selectAddress: UIViewController, UISearchBarDelegate {
// Present the Autocomplete view controller when the button is pressed.
@IBAction func autocompleteClicked(_ sender: UIButton) {
let autocompleteController = GMSAutocompleteViewController()
autocompleteController.delegate = self
self.present(autocompleteController, animated: true, completion: nil)
}
}
extension ViewController: GMSAutocompleteViewControllerDelegate {
// Handle the user's selection.
func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
print("Place name: \(place.name)")
print("Place address: \(place.formattedAddress)")
print("Place attributions: \(place.attributions)")
dismiss(animated: true, completion: nil)
}
func viewController(_ viewController: GMSAutocompleteViewController, didFailAutocompleteWithError error: Error) {
// TODO: handle the error.
print("Error: ", error.localizedDescription)
}
// User canceled the operation.
func wasCancelled(_ viewController: GMSAutocompleteViewController) {
dismiss(animated: true, completion: nil)
}
// Turn the network activity indicator on and off again.
func didRequestAutocompletePredictions(_ viewController: GMSAutocompleteViewController) {
UIApplication.shared.isNetworkActivityIndicatorVisible = true
}
func didUpdateAutocompletePredictions(_ viewController: GMSAutocompleteViewController) {
UIApplication.shared.isNetworkActivityIndicatorVisible = false
}
func viewController(viewController: GMSAutocompleteViewController!, didFailAutocompleteWithError error: NSError!) {
// TODO: handle the error.
print("Error: ", error.description)
}
}
答案 0 :(得分:1)
您的选择可以写成如下:
echo '<option value="$row[client_id]">$row[firstname] $row[lastname] - $row[city], $row[state]</option>';
另外,请注意,不推荐使用mysql_函数并以错误的方式使用会非常危险,这会使您的网站容易受到攻击。
使用mysqli或PDO使用预准备语句。
答案 1 :(得分:1)
...
$r_query = mysql_query($sql);
while ($row = mysql_fetch_array($r_query)) { ?>
<option value='<?= $row['client_id'];?>'>
<?= $row['firstname'] . " " . $row['lastname']; ?> -
<?= $row['city'] . ", " . $row['state']; ?>
</option>
<?php }} ?>
或者其中的一些变化。重点是,您的PHP不必是连续的块,您可以随时关闭PHP标记,使用常规HTML继续,然后打开一个新的PHP标记并继续循环。
此外,在上面的示例中,<?=
是<?php echo
的缩写。
此外,在您的示例中,您使用的是mysql_
函数,这些函数已在PHP5的更高版本中弃用,并在PHP7中删除。最好在mysqli_
或PDO
(您也可以使用MySQL数据库)进行研究。
最后,一旦你开始使用其中任何一个,查看预备语句,这将使你的代码功能更好/避免SQL注入。