ПРИМЕЧАНИЕ. Нет больше голосов, пожалуйста, просто потому, что вы не можете ответить на вопрос/или не можете понять проблему, это не значит, что вам нужно проголосовать. Я ясно сказал, что могу предоставить дополнительную информацию/быть более конкретным, если вы мне тоже.
Отредактированное название для уточнения
Я использую javascript для проверки клиентской части формы, а затем используя ajax для передачи 3 массивов данных на отдельную страницу PHP для обработки. Просто пытаюсь выполнить базовый запрос с одним из массивов, прежде чем я начну.
ajax-запрос говорит, что он работает, и когда я перехожу на вкладку сети, а затем нажмите "Ответ", он отображает все массивы с правильными значениями/индексами.
Но на стороне PHP ничего не происходит. Я не знаю, как отлаживать PHP, потому что он на другой странице. Я предполагаю, что это имеет какое-то отношение к моему синтаксису, поскольку у меня есть это слишком раньше, но я использовал ajax в функции. Я очень новичок в ajax, поэтому я не уверен, правильно ли я это делаю. Я пробовал действительный $wpdb
запрос на странице, и ничего не происходит. Как правильно структурировать мою страницу PHP для работы с ajax? В любом случае я могу отлаживать свой PHP, когда срабатывает ajax?
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
AJAX CALL:
$.ajax({
type: "POST",
url: "?page_id=251",
data: { vData: videoData, tsData: tsValues, dData: tsDescriptions},
success: function(){
$("#errorMessage").text("ajax success.");
}});
? page_id = 251 (страница PHP)
<?php
$videoData = $_POST['vData']; // i have also tried $_GET['vData'];
$vSRC = $videoData[0];$vTIT = $videoData[1];$vDES = $videoData[2];$vPDF = $videoData[3];$vDAT = $videoData[4];
$uID = get_current_user_id();
global $wpdb;
$wpdb->insert( $wpdb->prefix."uservideo", array(
"user_id" => $uID,
"video_src" => $vSRC,
"video_title" => $vTIT,
"video_description" => $vDES,
"pdf_file" => $vPDF,
"video_date" => $vDAT
));
?>
Я нашел решение проблемы. Мне нужно было вызвать функцию с помощью ajax, нельзя просто вызвать страницу. Я уверен, вы можете просто позвонить на страницу, но никто не знает, как очевидно.
AJAX
<script type="text/javascript">
function insert_data(vidData,timesData,descData){
$.ajax({
url: '?page_id=251',
type: 'POST',
data: {action: 'insert_video', vData: vidData, tsData: timesData, dData: descData },
dataType: 'json',
success: function(response){
alert('dhsdhjsdjhsjhdjhsd');
}
});
}
</script>
PHP
<?php
function insert_video($videoData,$tsValue,$tsDesc){
$videoData = $_POST['vData'];
$vSRC = $videoData[0];$vTIT = $videoData[1];$vDES = $videoData[2];$vPDF = $videoData[3];$vDAT = $videoData[4];
$tsValue = $_POST['tsData'];
$tsDesc = $_POST['dData'];
$uID = get_current_user_id();
global $wpdb;
$wpdb->insert( $wpdb->prefix."uservideo", array(
"user_id" => $uID,
"video_src" => $vSRC,
"video_title" => $vTIT,
"video_description" => $vDES,
"pdf_file" => $vPDF,
"video_date" => $vDAT
));
}
echo insert_video($_POST['vData'], $_POST['tsData'], $_POST['dData']);
?>
action: 'insert_video'
сейчас? Это то, что написано в документах. Вам также необходимо опубликовать данные action
. С тем же методом значения action
на стороне PHP.
?page_id=251
. Вы знаете, что это будет публиковать в index.php / index.html, и будете делать странную комбинацию запроса GET / POST? Я не думаю, что это то, что вы хотите. Вы, вероятно, намереваетесь ссылаться на фактический файл ...