Как я могу передать данные из HTML-формы в файл JavaScript, который обрабатывает вызовы AJAX?
submission_form.php
<?php echo elgg_view("input/file", array("name" => "icon", "class" => "icon")); ?> <p> <?= elgg_view('input/text', ["name" => 'title', "class" => "title"]); ?> </p>
submit.js
function myajax_function(){ var Ajax = require('elgg/Ajax'); var ajax = new Ajax(); ajax.action('service_comments/add_service_comment', { data: { picture: 1, description: 2 }, }).done(function (output, statusText, jqXHR) { if (jqXHR.AjaxData.status == -1) { return; } alert(output.sum); alert(output.product); }); }
файл действия: submission_form.php
// Not working $title = get_input('title'); // I'm not sure how to go about extracting the file from input/file and text from input/text
Спасибо всем заранее.
Я работаю с Elgg версии 2.X и следую этому руководству: Ajax Actions, но я думаю, что это будет стандартизировано (обмен данными с HTML на Javascript на PHP для сохранения AJAX)
добавьте класс или идентификатор в тег формы.
echo elgg_view_form('submission_form', array('class' => 'elgg-form-submission_form'), array());
то в вашем JS-файле
$(".elgg-form-submission_form").submit(function( event ) { $.post("service_comments/add_service_comment", $(this).serialize(), function(result) { }