【发布时间】:2015-11-06 09:31:30
【问题描述】:
我有一个带有 5 个字段的表单和一个锚点作为带有 ajax 的提交按钮。我需要执行一个函数来检索一些消息,具体取决于表单中插入的内容。此函数根据电话号码和代码从另一个主机(链接)检索不同的消息。当我使用 php 和 ajax 将数据插入数据库以显示来自该主机(链接)的答案时,如何使用此功能?
这是我的代码:
验证代码的函数:
function hit_check_code_new($phone, $code){
$url = 'mycustom_path_not_displayed_for_security_reasons/filejson.php';
$fields = array(
'phone' => urlencode($phone),
'code' => urlencode($code)
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
$what_i_received_from_testmail = json_decode($result,true);
if (!isset($what_i_received_from_testmail['Respond'])) return 'Invalid response!';
if ($what_i_received_from_testmail['Respond'] == 'ACCESDENIED') return 'Error: IP invalid!';
if ($what_i_received_from_testmail['Respond'] == 'INVALIDPARAMS') return 'Error: invalid input params';
if ($what_i_received_from_testmail['Respond'] == 'TIMEOUT') return 'Error: SQL is not responding!';
return $what_i_received_from_testmail['Respond'];
}
add_action("wp_ajax_enter_code", "enter_code");
add_action("wp_ajax_nopriv_enter_code", "enter_code");
function enter_code(){
global $wpdb;
$code = (isset($_POST['code']))?htmlspecialchars(trim($_POST['code'])):'';
$fname = (isset($_POST['fname']))?htmlspecialchars(trim($_POST['fname'])):'';
$lname = (isset($_POST['lname']))?htmlspecialchars(trim($_POST['lname'])):'';
$phone = (isset($_POST['phone']))?htmlspecialchars(trim($_POST['phone'])):'';
$email = (isset($_POST['email']))?htmlspecialchars(trim($_POST['email'])):'';
if(isset($_POST['code']) && !empty($_POST) && is_user_logged_in()){
$table = 'tst_contest';
$data = array(
'code' => $code,
'fname' => $fname,
'lname' => $lname,
'phone' => $phone,
'email' => $email
);
$format = array('%s', '%s', '%s', '%s', '%s');
$success = $wpdb->insert( $table, $data, $format );
}
}
我还有一个 ajax 代码,可以很好地通过最后一个函数将数据插入数据库。
我的最后一个问题是:如何将第一个函数实现到第二个函数中以获得我开头所说的内容?提前致谢。
Fresher建议的第二个 ajax(我在第一个 ajax succes 函数中使用了这个):
$.ajax({
type: "POST",
url: ajaxurl,
data: {action: 'hit_check_code_new', phone: phone, code: code},
success: function(msg){
console.log("SECOND AJAX REQUEST");
}
})
【问题讨论】:
-
在 ajax 响应中调用另一个 ajax 请求并用你的参数指出函数
-
你能给我举个例子吗?!
-
为什么要首先从 ajax 获得响应?你可以在
$success变量之后直接调用hit_check_code_new($phone, $code)吗? -
我试过了。它没有用,我不知道为什么。我想在执行 ajax 后使用 curl 函数。
-
我也用你的第一个建议更新了我的问题。你指的是那个?我已将代码放在问题的末尾。请检查。我在第一个 ajax 的 succes 函数中使用了那个 ajax。