gpt4 book ai didi

javascript - php脚本echo显示在控制台而不是文本输入中

转载 作者:行者123 更新时间:2023-12-03 11:56:58 25 4
gpt4 key购买 nike

我有这个 php 脚本:

<?php
add_action('wp_ajax_nopriv_getuser', 'getuser');
add_action('wp_ajax_getuser', 'getuser');

function getuser($str)
{
global $wpdb;

if(!wp_verify_nonce($_REQUEST['_nonce'], 'ajax-nonce'))
{
die('Not authorised!');
}

$myoption = get_option( 'fixformdata_options' );
$myoptionValue = maybe_unserialize( $myoption );

$result2 = $wpdb->get_row
(
$wpdb->prepare
(
"SELECT * FROM {$myoptionValue[tablename]} WHERE personeelsNummer = %s", 1
)
);

if($result2)
{
echo json_encode( $result2 );
}
}

这个 JavaScript 文件:

jQuery(document).ready(function($){
jQuery('#input_1_2').change(function()
{
jQuery.ajax({
type : 'post',
dataType : 'json',
_nonce : myAjax.ajaxurl,
url : myAjax.ajaxurl,
data : {action: 'getuser', value: this.value},
succes: function(response){
var parsed = JSON.parse(response);
var arr = [];
for(var x in parsed){ arr.push(parsed[x]);}
jQuery('#input_1_3').val(arr[1]);
jQuery('#input_1_4').val(arr[2]);
}
});

});
});

脚本的用途:

当文本输入更改时,使用此文本输入的值在另一个文本输入中显示某些数据库数据。

现在我有两个问题:

  1. 我无法获取函数 getuser() 的文本输入值
  2. 当我在 sql 语句中硬编码一个值时,我得到了结果,但它们显示在控制台中而不是使用:

.

success: function(response){
var parsed = JSON.parse(response);
var arr = [];
for(var x in parsed){ arr.push(parsed[x]);}
jQuery('#input_1_3').val(arr[1]);
jQuery('#input_1_4').val(arr[2]);
}

如何解决这个问题,我是 WordPress 和 Ajax 新手。

最佳答案

从你的 php _nonce 的外观来看,应该是内部数据。您不能使用 this.value 因为 this 是 jQuery ajax 函数本身,所以尝试:

jQuery('#input_1_2').change(function()
$value = $(this).val();
jQuery.ajax({
type : 'post',
dataType : 'json',
url : myAjax.ajaxurl,
data : {
action: 'getuser',
value: $value,
_nonce : myAjax.ajaxurl
},
succes: function(response){
var parsed = JSON.parse(response);
var arr = [];
for(var x in parsed){ arr.push(parsed[x]);}
jQuery('#input_1_3').val(arr[1]);
jQuery('#input_1_4').val(arr[2]);
}
});
});

在 php 中,您将在

中找到 value
$_POST['value'];

编辑

在php中添加

header('content-type:application/json');

之前

echo  json_encode( $result2 );

关于你应该不需要需要的js

JSON.parse(response)

你应该在数组中得到结果,即:

response[0]

等等

关于javascript - php脚本echo显示在控制台而不是文本输入中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25572953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com