php Получить действие формы в том же файле php - PullRequest
0 голосов
/ 21 марта 2012

У меня есть файл 'functions.php', который включает в себя несколько методов.Одним из этих методов является отображение формы GET, содержащей один выпадающий список.

        <form action="" method="GET">
    <select name="123_cat" class ="styled" onchange="this.form.submit();">  
   <?php foreach($subcategories['categories'] as $sc) { ?>
   <optgroup label="<?php echo $sc['name']; ?>">
    <?php foreach ($sc['subcategories'] as $ss){?>                              
             <option id = "123_cat" value="<?php echo $ss['sid']; ?>" <?php if (isset($_GET['123_cat'])) { if($ss['sid'] == $_GET['123_cat']) echo 'selected = "selected"';} else { if(in_array($ss['sid'], $the_subcategories)) echo 'selected = "selected"'; } ?>><?php echo $ss['name']; ?></option>
        <?php }?>

После этого у меня в том же functions.php метод, который выдает мне некоторые категории изjson.

   function get_deals($subcategories = array(), $page = 0, $deals_per_page = 10, $city = "bucuresti",$format = "json")
 {
global $wpdb;   
$site_root = "https://123reduceri.ro/";
$api_root = "api/v3/";
$table_name = $wpdb->prefix . "123reduceri";
$my_data = $wpdb->get_row("SELECT * FROM $table_name ORDER BY time DESC LIMIT 1");
$token = $my_data->token;

 if(isset($_GET['123_city'])){
$city = $_GET['123_city']; 
  }
 else{
    $city = $my_data->city; 
 }


 if(isset($_GET['123_cat'])){
$subcategories = array($_GET['123_cat']);       
  }  
else{

$subcategories = unserialize($my_data->categories);  
}

$url = $site_root . $api_root .$city . "." . $format . "?token=" . $token .       "&white_label=1" . "&deals_per_page=" . $deals_per_page;

if($page)
{
    $url .= "&page=" . $page;
}

if(count($subcategories))
{
    $subcategories_string = implode(",", $subcategories);
    $subcategories_string = rtrim($subcategories_string, ",");
    $url .= "/".$city."?"."&subcategories=" . $subcategories_string;
}

$response = file_get_contents($url);
if($format == "json")
    return json_decode($response, TRUE);


return $response;
}

Моя проблема в том, что после отправки формы GET я хочу остаться на той же странице и получить значения на основе метода get_deals.Что я должен иметь в «действии» формы GET?(странный факт заключается в том, что если у меня есть POST Foveorm, он работает, если я позволю форме действий "" (как выше)) Спасибо!

Ответы [ 3 ]

0 голосов
/ 21 марта 2012

Просто установите действие для URL страницы, на которой вы находитесь (за исключением получения параметров)

0 голосов
/ 30 ноября 2014

Использование action = '".$_SERVER['PHP_SELF']."'

0 голосов
/ 21 марта 2012

Вы можете использовать jQuery и метод .ajax () для получения значений из вашего скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...