У меня есть пара фрагментов кода, которые работают правильно, поскольку они передают желаемый результат, но они не работают так, как я бы хотел, чтобы они были в том, что я думаю, что код может быть улучшена.Передача многомерного массива через jQuery AJAX для MYSQL
Как я объясню более подробно через минуту, мой вопрос заключается в том, могу ли я вызвать элемент из многомерного массива по-другому, чем в фрагменте, хотя в этом фрагменте я просто думаю, что это меньше идеала.
функция JQuery AJAX:
jQuery("form.everglades_user_submit").submit(function(event){
event.preventDefault();
var user_submit_data = jQuery(".everglades_user_submit").serialize();
jQuery.ajax({
type: "POST",
url: "' . $db_script_location . '",
data: {action: "zip_form", action_data: user_submit_data}
}).done(function(response){
alert("success. response: " + response);
}).fail(function(response){
alert("failure. response: " + response);
});
});
Посылает данные в PHP файл, содержащий запрос MySQL, а затем передает обратно ответ базы данных для предупреждения:
if ($_POST["action"] == "zip_form") {
$database_var = mysqli_connect('localhost',/*******************/);
if (!$database_var) {
die('Could not connect to database. Error: ' . mysqli_error($database_var));
} else {
$submitted_zip = $_POST["action_data"];
$modified_data = str_replace("user_zip=","", $submitted_zip);
echo "submitted: " . $submitted_zip . ". Modified : " . $modified_data;
$query = "SELECT * FROM cust_db_fl_sen WHERE rep_zip = '" . $modified_data . "'";
$mysqli_result = mysqli_query($database_var, $query);
while($query_result = mysqli_fetch_array($mysqli_result)) {
echo 'Query result, only rep district atm: ' . $query_result['rep_dist'];
}
exit;
}
Как вы можете увидеть, что Я сделал это, чтобы взять предоставленные данные и удалить часть, которую я не хочу использовать str_replace(). Я бы настоятельно предпочел, если я мог бы просто позвонить $ modified_data таким образом, но она возвращает недопустимую строку ошибка смещения на «user_zip,» уронить ли я в кавычки или нет:
$modified_data = $_POST["action_data"]["user_zip"];
Однако, если я заменю user_zip строка с номером, например 0 или 1, возвращает букву (u или s и т. д.), поэтому кажется, что обрабатывает user_zip = 12345 как литеральную строку, а не пару ключ-> значение, которую я хочу, чтобы она обрабатывалась как ,
Если бы я оценить следующее в ответ на запрос AJAX на основе представления 11111 в текстовом поле формы:
echo $_POST["action_data"];
Это приведет с «user_zip = 11111.» user_zip - это ключ, для которого значение 11111 будет стоить, но меня интересует только этот номер, потому что он используется для поиска избранного представителя для почтового индекса на основе запроса к базе данных.
Подводя итог: Подходит ли литерал к строковой обработке с помощью str_replace(), или есть простой способ рассказать код, который мы имеем дело с парой ключ-> значение, или массив или так далее, так что что я могу легко извлечь с помощью моего предпочтительного метода вызова или чего-то подобного?
Использование JSON – Vick