Используя ajax, число отражается в echo $response;
php echo $response;
Затем в JQuery я хотел бы поместить этот номер в поле "total one". Как я могу это сделать?
Код пока:
В php файле
echo $response;
В файле Jquery
jQuery(document).ready(function($) {
(function($) {
$(document).ready(function() {
$('#formsubmit').click(function() {
$.post(
PT_Ajax.ajaxurl, {
action: 'ajax-inputtitleSubmit',
numberofwelds: $('input[name=numberofwelds]').val(),
numberofconwelds: $('input[name=numberofconwelds]').val(),
nextNonce: PT_Ajax.nextNonce
}, function(response) {
$('#totalone').val(response);
});
return false;
});
});
})(jQuery);
});
ОБНОВИТЬ
На console.log
отображается номер, который я пытаюсь отобразить в поле #totalone
. В консоли JS нет ошибок.
PHP, который создает ответ Ajax для отправки обратно в Jquery:
function myajax_inputtitleSubmit_func() {
$nonce = $_POST['nextNonce'];
if ( ! wp_verify_nonce( $nonce, 'myajax-next-nonce' ) )
die ( 'Busted!');
$numwelds = isset($_POST['numberofwelds']) ? $_POST['numberofwelds'] : '';
$numconwelds = isset($_POST['numberofconwelds']) ? $_POST['numberofconwelds'] : '';
if (is_numeric($numwelds) && is_numeric($numconwelds))
{
$total = $numwelds + $numconwelds;
$response = json_encode($total);
header("Content-Type: application/json");
echo $response;
exit;
}
}
Форма HTML
<form action="" method="post" name="formsubmit" id="formsubmit" >
<h1> Process </h1>
<p> operation type always robot </p>
Number of welds: <input type="number" name="numberofwelds" id="numberofwelds" >
<br /> <br />
Number of construction welds: <input type="number" name="numberofconwelds" id="numberofconwelds" >
<br /> <br />
Total one: <input type="text" name="totalone" id="totalone" disabled>
<br /> <br />
<input type="submit" value="Calculate" id="submit" name="submit" class="ajax-link" >
<div id="result"> </div>
</form>
Я изменил одиночные кавычки здесь $('#totalone').val(response);
удвоить это значение $("#totalone").val(response);
, Кажется, сейчас работает, и я не совсем понимаю, почему он работает.
Я нашел несколько дополнительных скобок и т.д. В вашем коде. Вот очищенная версия, которая может просто работать:
(function($) {
$(function() {
$('#formsubmit').click(function(){
$.post(
PT_Ajax.ajaxurl,
{
action : 'ajax-inputtitleSubmit',
numberofwelds : $('input[name=numberofwelds]').val(),
numberofconwelds : $('input[name=numberofconwelds]').val(),
nextNonce : PT_Ajax.nextNonce
},
function( response ) {
$("#totalone").val(response);
}
);
return false;
});
});
}(jQuery));
Попробуй это. измените значение val() на текст()
jQuery(document).ready(function($) {
(function($) {
$(document).ready(function() {
$('#formsubmit').click(function() {
$.post(
PT_Ajax.ajaxurl, {
action: 'ajax-inputtitleSubmit',
numberofwelds: $('input[name=numberofwelds]').val(),
numberofconwelds: $('input[name=numberofconwelds]').val(),
nextNonce: PT_Ajax.nextNonce
}, function(response) {
$('#totalone').text(response);
});
return false;
});
});
})(jQuery);
});
response
? Вы уверены, что$('#totalone')
выбирает элемент?$('#totalone').val(response); with
console.log (response); `номер отображается в консоли.#totalone
- это идентификатор, я также#totalone
это выше.