@hypnogaja

Как получить передать id на другую страницу php?

Всем привет,
Всё та же эпопея с таблицами и связанными с ними данными из БД.
Имеется таблица A, с данными и своим id
Имеется таблица B, со своими данными, своим id и внешним ключом idA.

5e779cf418925666015736.jpeg
5e779cfc30c48143399685.jpeg

Следующим образом формируется ссылка для перехода на следующую страницу (с другой таблицей)
$moldRows[] = '<a href="/details.php?moldsid='.$molds['id'].'" id="sendmoldsid">'.$molds['mold_number'].'</a>';

Её результат в строке:
http://localhost/details.php?moldsid=113

Каким образом на странице details.php получить id этой ссылки, если $_GET['moldsid'] не работает?
Таблицы - это аналог DataTables, с тем же принципом, данными по json и ajax.
Функция по выводу данных ниже:

public function detailsList(){	
		$moldsid = $_GET['moldsid'];
		$sqlQuery = "SELECT * FROM ".$this->detailTable."
					WHERE moldsid = '".$moldsid."' ";
			if(!empty($_POST["search"]["value"])){
				$sqlQuery .= 'where(id LIKE "%'.$_POST["search"]["value"].'%" ';
					$sqlQuery .= ' OR moldsid LIKE "%'.$_POST["search"]["value"].'%" ';	
					$sqlQuery .= ' OR detail_number LIKE "%'.$_POST["search"]["value"].'%" ';						
					$sqlQuery .= ' OR detail_name LIKE "%'.$_POST["search"]["value"].'%" ';
					$sqlQuery .= ' OR detail_gost_stp LIKE "%'.$_POST["search"]["value"].'%" ';
					$sqlQuery .= ' OR detail_quantity LIKE "%'.$_POST["search"]["value"].'%" ';
					$sqlQuery .= ' OR detail_material LIKE "%'.$_POST["search"]["value"].'%" ';
					$sqlQuery .= ' OR detail_procedure LIKE "%'.$_POST["search"]["value"].'%" ';	
					$sqlQuery .= ' OR detail_technology_process LIKE "%'.$_POST["search"]["value"].'%") ';	
				}
				if(!empty($_POST["order"])){
					$sqlQuery .= 'ORDER BY '.$_POST['order']['0']['column'].' '.$_POST['order']['0']['dir'].' ';
				} else {
					$sqlQuery .= 'ORDER BY id DESC ';
				}
				$result = mysqli_query($this->dbConnect, $sqlQuery);
				$numRows = mysqli_num_rows($result);
				if($_POST["length"] != -1){
					$sqlQuery .= 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length'];
				}	
				$result = mysqli_query($this->dbConnect, $sqlQuery);
				$detailsData = array();	
				while( $details = mysqli_fetch_assoc($result) ) {		
					$detailRows = array();	
					$detailRows[] = $details['id'];
					$detailRows[] = $details['moldsid'];
					$detailRows[] = $details['detail_number'];
					$detailRows[] = $details['detail_name'];	
					$detailRows[] = $details['detail_gost_stp'];
					$detailRows[] = $details['detail_quantity'];
					$detailRows[] = $details['detail_material'];					
					$detailRows[] = $details['detail_procedure'];					
					$detailRows[] = $details['detail_technology_process'];									
					$detailRows[] = '<button type="button" name="update" id="'.$details["id"].'" class="btn btn-warning btn-xs update">Изменить</button>';
					$detailRows[] = '<button type="button" name="delete" id="'.$details["id"].'" class="btn btn-danger btn-xs delete">Удалить</button>';
					$detailsData[] = $detailRows;
				}
				$output = array(
					"draw"				=>	intval($_POST["draw"]),
					"recordsTotal"  	=>  $numRows,
					"recordsFiltered" 	=> 	$numRows,
					"data"    			=> 	$detailsData
					);
				echo json_encode($output);
			}


Кто подскажет каким образом передать данные или получить id из url?
  • Вопрос задан
  • 1992 просмотра
Решения вопроса 1
@hypnogaja Автор вопроса
Можно получить данные url непосредственно в js и отправить их через AJAX на сервер следующим образом:
How can I get query string values in JavaScript?
function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, '\\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
	var moldsid = getParameterByName('moldsid');

Передать на сервер:
var detailsData = $('#detailsList').DataTable({
		// ...
		"ajax":{
			url:"detailsaction.php",
			type:"POST",
			data:{moldsid:moldsid, action:'listDetails'},
			dataType:"json"
		},
                // ...

Получить на сервере:
$moldsid = $_POST["moldsid"];
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
public function detailsList($moldsid = $_POST['id']){
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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