https://github.com/radeth/dbtest
php nie chce zaciągnąć danych przez ajaxa po wpisaniu nazwy zmienne "na sztywno" w kodzie wszystko działe ale przy uzyciu $_POST[] pojawia się problem Undefined index
- 1
- 2

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
- Rejestracja:prawie 17 lat
- Ostatnio:5 dni
- Postów:644
https://github.com/radeth/dbtest/blob/master/js.js linia 17 i 40, literówka.

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
nadal nie działa
function send(){
$('#wyslij').on('click',function(){
console.log('test')
$.ajax({
url: 'dbsend.php',
type: 'POST',
dataType: 'json',
data: {
id: $('id').val(),
date: $('date').val(),
type: $('type').val(),
text: $('text').val()
},
success: function(result){
},
error: function(error){
console.log(error);
}
});
})
}```

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
Napisałem w poscie o co chodzi nie jestem wstanie wczytać danych do skryptu php za pomocą metody $_POST Undefined index
- Rejestracja:ponad 13 lat
- Ostatnio:37 minut
- Postów:433
No bo niby co ma ten Twój skrypt przekazać? Jeżeli przekazujesz dane w jquery to wskaż po czym zbierasz te dane. Przykładowo, dla ID powinno być:
id: $('#id').val()
jeżeli pobierasz dane z INPUT o id = 'id'
Druga rzecz, po co jest to:
dataType: 'json',

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
ten skrypt ma pobrać dane z formularza za pomocą .val() i za pomocą tych danych utworzyć zapytanie w bazie danych.
poprawiłem literówki ale nadal nie działa
function send() {
$('#wyslij').on('click', function () {
console.log('test')
$.ajax({
url: 'dbsend.php',
type: 'POST',
data: {
date: $('#date').val(),
type: $('#type').val(),
text: $('#text').val()
},
success: function (result) {
},
error: function (error) {
console.log(error);
}
});
})
}
drugi skrypt ma pobrać dane i na ich podstawie skrypt php zwraca obiekt JSON z wybranymi rekordami
function search() {
$('#button').on('click', function () {
$.ajax({
url: 'search.php',
type: 'POST',
dataType: 'json',
data: {
zapytanie: $('#zapytanie').val()
},
success: function (result) {
var member = result;
let resHTML = '';
for (var i = 0; i <= result.length; i++) {
resHTML += '<a href="#" class="member" id=' + i + '>' + result[i].id + '</a>' + ' ' + result[i].date + ' ' + result[i].type + ' ' + result[i].text + '<br>';
$('#result').html(resHTML);
}
return member;
},
error: function (error) {
console.log(error);
}
});
})
}
-
Twój kod wygląda dobrze - otwórz konsolę deweloperską w przeglądarce, wejdź do zakładki
Network
i pokaż, co dokładnie zwraca Ci Twoje wywołanie$.ajax
. -
Nazwy commitów powinny opisywać wprowadzone zmiany (np.
Fix a bug where $_POST didn't contain proper values.
), a nie być zlepkiem losowych słów (np.ajax nie dziala
). -
Masz
off by one error
w handlerzesuccess
w drugim kodzie (i <= result.length
). -
Nie musisz ręcznie zlepiać HTMLa:
result.forEach((item) => {
let $a = $('a');
$a.attr('href', '#');
$a.text(item.id);
/* ... */
$a.appendTo(
$('#result')
);
});

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
to jest zwracane w konsoli
{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
abort
:
ƒ (a)
always
:
ƒ ()
catch
:
ƒ (a)
done
:
ƒ ()
fail
:
ƒ ()
getAllResponseHeaders
:
ƒ ()
getResponseHeader
:
ƒ (a)
overrideMimeType
:
ƒ (a)
pipe
:
ƒ ()
progress
:
ƒ ()
promise
:
ƒ (a)
readyState
:
4
responseText
:
"
↵Notice: Undefined index: date in C:\xampp\htdocs\dbtest\dbsend.php on line 3
↵
↵Notice: Undefined index: type in C:\xampp\htdocs\dbtest\dbsend.php on line 4
↵
↵Notice: Undefined index: text in C:\xampp\htdocs\dbtest\dbsend.php on line 5
↵"
setRequestHeader
:
ƒ (a,b)
state
:
ƒ ()
status
:
200
statusCode
:
ƒ (a)
statusText
:
"OK"
then
:
ƒ (b,d,e)
proto
:
Object

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
to samo co w konsoli
Notice: Undefined index: date in C:\xampp\htdocs\dbtest\dbsend.php on line 3
Notice: Undefined index: type in C:\xampp\htdocs\dbtest\dbsend.php on line 4
Notice: Undefined index: text in C:\xampp\htdocs\dbtest\dbsend.php on line 5
<?php
require_once "connect.php";
$date = $_POST['date'];
$type = $_POST['type'];
$text = $_POST['text'];
$connect = @new mysqli($host,$db_user,$dbpassword,$db_name);
if($connect->connect_errno!=0){
echo $connect->connect_errno;
}else{
$querry = "INSERT INTO test SET date='$date',type='$type',text='$text'";
$connect->query($querry);
$connect->close();
}
?>

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
- screenshot-20180604181311.png (83 KB) - ściągnięć: 59

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
- screenshot-20180604181633.png (68 KB) - ściągnięć: 66

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
- screenshot-20180604181935.png (45 KB) - ściągnięć: 71

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
ajax działa jak najbardziej poprawnie napisałem to na samym początku gdy na sztywno ustale zapytanie to json zwraca sie poprawnie problem jest z metodą $_POST[]

- Rejestracja:ponad 19 lat
- Ostatnio:ponad 6 lat
- Lokalizacja:Bydgoszcz
przycisk wyslij
to button czy submit ?

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
button ale skrypt wywouje ajaxem wiec submit jest raczej niewskazany

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
taki skrypt wywołany ajaxem porwanie zwraca JSON'a do js'a
<?php
header('Content-Type: application/json');
require_once "connect.php";
$connect = @new mysqli($host,$db_user,$dbpassword,$db_name);
$zapytanie = 'one';
if($connect->connect_errno!=0){
echo $connect->connect_errno;
}else{
$querry = "SELECT * FROM `test` WHERE type='$zapytanie'";
$result = $connect->query($querry);
$preJSON = array();
foreach($result as $key=>$data){
$preJSON[$key] = $data;
}
$myJSON = json_encode($preJSON);
echo $myJSON;
$connect->close();
}
?>

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
tutaj jest i nie działa
<?php
header('Content-Type: application/json');
require_once "connect.php";
$connect = @new mysqli($host,$db_user,$dbpassword,$db_name);
$type = $_POST["type"];
if($connect->connect_errno!=0){
echo $connect->connect_errno;
}else{
$querry = "SELECT * FROM `test` WHERE type='$type'";
$result = $connect->query($querry);
$preJSON = array();
foreach($result as $key=>$data){
$preJSON[$key] = $data;
}
$myJSON = json_encode($preJSON);
echo $myJSON;
$connect->close();
}
?>```

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
Jednak nie działa, tak gdy wpisze zapytanie na sztywno ajax działa i poprawnie zwraca jsona, ale jest wstanie przkazać danych do zmiennej za pomocją metody $_POST[]

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 6 lat
- Postów:29
nie działa
zapytanie: 'one'
}```
co mam uzyskać tym vardumpem bo nie rozumiem
- 1
- 2
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.