Я не могу понять, как отправить данные из моего HTML на стороне клиента к моему Серверный PHP (Что уже означает, что они не находятся в одной и той же папке и не работают на сервере) и получают только уведомление о неопознанной переменной и фатальной ошибке: невозможно получить доступ к пустому свойству.
Я попробовал методы в W3Schools и до сих пор не повезло. И просто чтобы быть уверенным, что я попытался скопировать вставить его. Все тот же.
Поэтому мой вопрос: как я могу отправить эти простые данные HTML / JavaScript на стороне клиента: —
<script>
function sender(){
obj = "tblname";
// how to send that data to the php server-side.
}
</script>
К этому PHP: —
<?php
header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_GET["x"], false);
$conn = new mysqli("localhost", "root", "", "mydb");
$result = $conn->query("SELECT * FROM ".$objData);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>
Используете JSON?
Если бы кто-нибудь мог разработать и показать мне образец, это было бы здорово.
Опять же, я новичок в использовании JSON и не имею долгосрочного опыта (я только начал неделю назад, и у меня уже было много проблем), и я совершенно не понимаю, когда речь идет о клиент-серверном типе. коммуникации.
Мне просто нужен простой код отправителя (из JavaScript) и код получения (из Php), которые будут делать одна или две строки; с кратким описанием того, как они работают.
Я использую Windows 7, Wamp3.0.6 и Chrome.
PS: я получил это от W3Schools. Да, это не сработало. И, пожалуйста, не будь смутным. Спасибо!
Вы можете сделать ajax форму вызова клиентской стороны в файл сервера и можете отправлять данные с помощью метода get
// Using the core $.ajax() method
$.ajax({
// The URL for the request
url: "path of your php file",
// The data to send (will be converted to a query string)
data: {
id: 123
},
// Whether this is a POST or GET request
type: "GET",
// The type of data we expect back
dataType : "json",
})
// Code to run if the request succeeds (is done);
// The response is passed to the function
.done(function( json ) {
})
// Code to run if the request fails; the raw request and
// status codes are passed to the function
.fail(function( xhr, status, errorThrown ) {
alert( "Sorry, there was a problem!" );
})
// Code to run regardless of success or failure;
.always(function( xhr, status ) {
alert( "The request is complete!" );
})
-_-
Кажется, что все пытаются и усложняют, и думают об этом, когда просто Ответом был бы этот код.
function caller(){
myData = "myTbl";
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "bring.php?q="+myData,true); //sends myData to the php. You can change the GET to POST if ya want to be extra safe but either way, the php won't care anyways.
xmlhttp.send();
}
Приведенный выше код с клиентского сервера и отправляет данные myData
к этой стороне сервера php.
<?php
$q = $_REQUEST['q']; //the receiver of the data. You can use explode() to separate them into pieces and turn it into a jigsaw puzzle if ya want.
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "Mydb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} // how to connect is not important in my question but it is important for you to be able to connect to the database.
// now for the important stuff
$sql = "SELECT * FROM ".$q." "; // I had to extend it with a space because sometimes it's misunderstood.
$result = mysqli_query($conn, $sql) or die("Error in Selecting " . mysqli_error($conn));
$outp = array();
while($row=mysqli_fetch_assoc($result))
{
$outp[] = $row;
}
echo json_encode($outp); //sends the data gathered from the database table back to the client as a JSON file, and you are done.
?>
Мне потребовалось 6 часов обучения с большим количеством интернет-серфинга, проб и ошибок.
И как я уже сказал; Я новичок в JSON, так что почти все поняли, что я не понимаю AJAX. Мол, ВСЕ.
Извините, если вы думаете, что я звучу как идиот, но давайте посмотрим правде в глаза, почти все мы когда-то были идиотами, пытаясь научиться программированию. Итак, я удивлен, почему некоторые люди просто грубы здесь. Благодарю. Почему-то я не очень удивлен, что их здесь тоже так любят. Делает мою жизнь в интернете немного скучнее.
Поэтому в следующий раз сделайте мне одолжение, и вместо того, чтобы быть полностью грубым, просто ответьте на вопрос, если он у вас есть.
Вы не можете передать объект через HTTP как есть. Вам нужно преобразовать его в строку, которую вы можете поместить в тело вашего запроса HTTP-POST:
try {
var jsonString = JSON.stringify(anyJsonObject);
//send it to the server
} catch(ex) {
//handle error if anyJsonObject wasn't a valid JSON object. Remember: Not every JS object is a JSON object too.
}
Обратный путь:
try {
var jsonObject = JSON.parse(anyJsonString);
} catch(ex) {
//handle error if anyJsonString was malformed
}