Публикация параметров в URL с использованием метода POST без использования формы

Я немного изменил ответ PHP Olivier на:

  • распечатать результаты, в которых была найдена строка
  • опустить таблицы без результатов
  • также показывают вывод, если имена столбцов соответствуют поисковому входу
  • показывают общее количество результатов
    function searchAllDB($search){
        global $mysqli;
    
        $out = "";
        $total = 0;
        $sql = "SHOW TABLES";
        $rs = $mysqli->query($sql);
        if($rs->num_rows > 0){
            while($r = $rs->fetch_array()){
                $table = $r[0];
                $sql_search = "select * from ".$table." where ";
                $sql_search_fields = Array();
                $sql2 = "SHOW COLUMNS FROM ".$table;
                $rs2 = $mysqli->query($sql2);
                if($rs2->num_rows > 0){
                    while($r2 = $rs2->fetch_array()){
                        $colum = $r2[0];
                        $sql_search_fields[] = $colum." like('%".$search."%')";
                        if(strpos($colum,$search))
                        {
                            echo "FIELD NAME: ".$colum."\n";
                        }
                    }
                    $rs2->close();
                }
                $sql_search .= implode(" OR ", $sql_search_fields);
                $rs3 = $mysqli->query($sql_search);
                if($rs3 && $rs3->num_rows > 0)
                {
                    $out .= $table.": ".$rs3->num_rows."\n";
                    if($rs3->num_rows > 0){
                        $total += $rs3->num_rows;
                        $out.= print_r($rs3->fetch_all(),1);
                        $rs3->close();
                    }
                }
            }
            $out .= "\n\nTotal results:".$total;
            $rs->close();
        }
        return $out;
    }
    
18
задан n3rd 15 September 2010 в 12:39
поделиться

5 ответов

Вы можете использовать JavaScript и XMLHTTPRequest (AJAX) для выполнения POST без использования формы. Проверьте эту ссылку . Однако имейте в виду, что вам потребуется включить JavaScript в вашем браузере.

14
ответ дан 30 November 2019 в 06:39
поделиться

Использование jQuery.post

$.post(
  "http://theurl.com",
  { key1: "value1", key2: "value2" },
  function(data) {
    alert("Response: " + data);
  }
);
27
ответ дан 30 November 2019 в 06:39
поделиться

Как это сделать без использования cURL с прямым PHP: http://netevil.org/blog/2006/nov/http-post-from-php-without- curl

3
ответ дан 30 November 2019 в 06:39
поделиться

это можно сделать с помощью CURL или AJAX. Ответ столь же загадочен, как и ответ.

0
ответ дан 30 November 2019 в 06:39
поделиться

cURL - это вариант, использующий также Ajax, хотя решение внутренних проблем с помощью внешнего интерфейса не так аккуратно.

Очень полезный пост о том, как сделать это без cURL, - это: http: //netevil.org/blog/2006/nov/http-post-from-php-without-curl

Код для этого (непроверенный, не улучшенный, из сообщения в блоге):

function do_post_request($url, $data, $optional_headers = null)
{
   $params = array('http' => array(
                'method' => 'POST',
                'content' => $data
             ));
   if ($optional_headers !== null) {
      $params['http']['header'] = $optional_headers;
   }
   $ctx = stream_context_create($params);
   $fp = @fopen($url, 'rb', false, $ctx);
   if (!$fp) {
      throw new Exception("Problem with $url, $php_errormsg");
   }
   $response = @stream_get_contents($fp);
   if ($response === false) {
      throw new Exception("Problem reading data from $url, $php_errormsg");
   }
   return $response;
}
4
ответ дан 30 November 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: