我正在尝试在 Wordpress 中创建具有多个相同类型字段(即标题)的表单。在这种情况下,我需要确保在提交表单之前不会尝试插入任何重复数据。我有以下代码块:
Titles.php
<?php /* Template Name: Titles */
get_header();
?>
<form action="<?php the_permalink(); ?>" method="POST">
<input type="text" id='title' name="title[]" placeholder="এখানে শিরোনামটি দিন" required><span id="availability"></span><br/>
<input type="text" id='title' name="title[]" placeholder="এখানে শিরোনামটি দিন" required><span id="availability"></span><br/>
<input type="text" id='title' name="title[]" placeholder="এখানে শিরোনামটি দিন" required><span id="availability"></span><br/>
<button class="myBtn" type="submit" id='submit' name="submit" value="সাবমিট করুন">সাবমিট করুন</button>
</form>
<script>
$(document).ready(function(){
$('#title').blur(function(){
var title = $(this).val();
$.ajax({
url:'http://localhost/research/?page_id=222', //code for duplicate data check
method:"POST",
data:{title: title},
success:function(data)
{
if(data != '0')
{
$('#availability').html('<span>Title already exist</span>');
$('#submit').attr("disabled", true);
}
}
})
});
});
</script>
check.php
<?php /* Template Name: Check Duplicate Titles */ ?>
<?php
{
if(isset($_POST['title'])){
global $wpdb;
add_filter( 'pre_get_table_charset', '__return_false' );
$results = $wpdb->get_results( "SELECT * FROM wp_webmon WHERE title='".$_POST['title']."'");
echo $wpdb->num_rows;
}
}
?>
实际上什么也没做。我真的需要帮助以使此代码正常工作。预先感谢。
答案 0 :(得分:0)
尝试此代码
Titles.php
<?php
/*Template Name: Titles*/
get_header();
?>
<form action="<?php the_permalink(); ?>" method="POST" id="formid">
<input type="text" class='title' name="title[]" placeholder="এখানে শিরোনামটি দিন" required><span id="availability"></span><br/>
<input type="text" class='title' name="title[]" placeholder="এখানে শিরোনামটি দিন" required><span id="availability"></span><br/>
<input type="text" class='title' name="title[]" placeholder="এখানে শিরোনামটি দিন" required><span id="availability"></span><br/>
<button class="myBtn" type="submit" id='submit' name="submit" value="সাবমিট করুন">সাবমিট করুন</button>
</form>
<script>
jQuery(document).ready(function(){
jQuery('.title').blur(function(){
var title = jQuery(this).val();
jQuery.ajax({
type : "POST",
dataType : "json",
url : "<?php echo admin_url('admin-ajax.php'); ?>",
data:{data: jQuery('#formid').serialize(), action: "check_title"},
success: function(data) {
data = jQuery.trim(data);
console.log(data);
if(data != '0'){
jQuery('#availability').html('<span>Title already exist</span>');
jQuery('#submit').attr("disabled", true);
}
}
});
});
});
</script>
functions.php
function check_title() {
global $wpdb;
parse_str($_POST['data'], $get_array);
$get_array = array_filter($get_array['title']);
$results = $wpdb->get_results( "SELECT * FROM wp_webmon WHERE title in (".implode(',',$get_array).")");
echo $wpdb->num_rows;
exit;
}
add_action( 'wp_ajax_nopriv_check_title', 'check_title' );
add_action( 'wp_ajax_check_title', 'check_title' );