Pole z JS přes POST QueryString poslané se cestou ztratí – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Pole z JS přes POST QueryString poslané se cestou ztratí – PHP – Fórum – Programujte.comPole z JS přes POST QueryString poslané se cestou ztratí – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Matěj Andrle+1
Grafoman
11. 10. 2014   #1
-
0
-

Dobrý den,
surový string POSTu mi ukazuje co jsem skutečně poslal: "id[]=1". Ale přes $_POST nedostanu nic - jak dostanu Array objekt? Tahám pro test takto: "echo $_POST["id"]".
Děkuji.

Nahlásit jako SPAM
IP: 78.136.164.–
Reklama
Reklama
Kit+11
Guru
11. 10. 2014   #2
-
0
-

#1 Matěj Andrle
Zkus to vypsat jinak: 

print_r($_POST["id"]);

Pokud to nic nevypíše, tak to ještě zkus zjednodušit na

print_r($_POST);
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:9be:4...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Matěj Andrle+1
Grafoman
11. 10. 2014   #3
-
0
-

#2 Kit
Array
(
)

vypíše "$_POST" - copak to je? :D 

Nahlásit jako SPAM
IP: 78.136.164.–
Kit+11
Guru
11. 10. 2014   #4
-
0
-

#3 Matěj Andrle
Skutečně to posíláš metodou POST? Co ti vypíše 

echo $_SERVER['REQUEST_METHOD'];
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:9be:4...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Matěj Andrle+1
Grafoman
11. 10. 2014   #5
-
0
-

#4 Kit
POST

for(index = 0; index < checkBoxes.length; index++)
	if(checkBoxes[index].checked)
		where += "id[]=" + checkBoxes[index].value + '&';

xmlhttp.open("POST", "delete.php", true);
xmlhttp.send(where);

Do PHP přijde POST QueryString - jak jsem psal.

Nahlásit jako SPAM
IP: 78.136.164.–
Řešení
Kit+11
Guru
11. 10. 2014   #6
-
0
-
Vyřešeno Nejlepší odpověď

#5 Matěj Andrle
Vlož mezi ty dva řádky 

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:9be:4...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Matěj Andrle+1
Grafoman
11. 10. 2014   #7
-
0
-

#6 Kit
Stejně mi to nepomohlo... :)

<?php
include "database.php";

$libraryManager = new DatabaseManager();
$statement = $libraryManager->pdoInstance->prepare("DELETE FROM `member` WHERE `id` IN :id");

if($statement->execute(array("id" => $_POST["id"])))
	echo "Smazáno!";
else
{
	$error = $libraryManager->pdoInstance->errorInfo();
	echo $error[2];
}
?>

Jak na to jít? (Nic se nesmaže.)

Nahlásit jako SPAM
IP: 78.136.164.–
Kit+11
Guru
11. 10. 2014   #8
-
0
-

#7 Matěj Andrle
Jaký význam tam má "IN :id"? To přece nemůže fungovat.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:9be:4...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Matěj Andrle+1
Grafoman
11. 10. 2014   #9
-
0
-

#8 Kit
Proto se ptám - netuším jak na to v PDO bez injekce... Má to být "in (...)"...

Nahlásit jako SPAM
IP: 78.136.164.–
Matěj Andrle+1
Grafoman
11. 10. 2014   #10
-
0
-

#8 Kit
OK - už to mám... :D

<?php
include "database.php";

$id = $_POST["id"];
$libraryManager = new DatabaseManager();
$statement = $libraryManager->pdoInstance->prepare("DELETE FROM `member` WHERE `id` IN (".str_repeat("?,", count($id) - 1)."?)");

if($statement->execute($id))
	echo "Smazáno!";
else
{
	$error = $libraryManager->pdoInstance->errorInfo();
	echo $error[2];
}
?>
Nahlásit jako SPAM
IP: 78.136.164.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 59 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý