- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,首先我在这个例子中尝试了实时 php ajax 编辑我的文件在这里:
ajax.php
<?php
include 'configuration.php';
include 'functions/functions.php';
$action = utf8_encode($_REQUEST['action']);
?>
<!DOCTYPE html>
<html dir="rtl" lang="ar">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
var table11_Props = {
filters_row_index: 1,
match_case: true,
remember_grid_values: true
};
var tf11 = setFilterGrid("table11", table11_Props);
</script>
<script>
TogetherJSConfig_enableAnalytics = true;
TogetherJSConfig_cloneClicks = "#run, .toggler";
TogetherJSConfig_toolName = "Collaboration";
</script>
<script src="https://togetherjs.com/togetherjs.js"></script>
</head>
<body>
<?php
switch($action) {
case "load":
$query = mysql_query("SELECT * FROM `add_new_player` ORDER BY player_id ASC");
$count = mysql_num_rows($query);
if($count > 0) {
while($fetch = mysql_fetch_array($query)) {
$record[] = $fetch;
}
}
?>
<table id="table11" class="as_gridder_table" style="direction: rtl">
<tr class="grid_header">
<td><div class="grid_heading">اسم اللاعب</div></td>
<td><div class="grid_heading">اسم </div></td>
<td><div class="grid_heading">سنة الميلاد</div></td>
<td><div class="grid_heading">النوع</div></td>
</tr>
<tr id="addnew">
<td> </td>
<td colspan="6">
<form id="gridder_addform" method="post">
<input type="hidden" name="action" value="addnew" />
<table width="100%">
<tr>
<td><input type="text" name="full_name" id="full_name" class="gridder_add" /></td>
<td><input type="text" name="club_name" id="club_name" class="gridder_add" /></td>
<td><input type="text" name="birthday" id="club_name" class="gridder_add" /></td>
<td><input type="text" name="gender" id="gender" class="gridder_add" /></td>
<td><input type="text" name="birthday" id="birthday" class="gridder_add" /></td>
<td><select name="profession" id="profession" class="gridder_add select">
<option value="">SELECT</option>
<?php foreach($department as $departments) { ?>
<option value="<?php echo $departments; ?>"><?php echo $departments; ?></option>
<?php } ?>
</select></td>
<td><input type="text" name="country" id="country" class="gridder_add" /></td>
<td>
<input type="submit" id="gridder_addrecord" value="" class="gridder_addrecord_button" title="Add" />
<a href="cancel" id="gridder_cancel" class="gridder_cancel"><img src="images2/delete.png" alt="Cancel" title="Cancel" /></a></td>
</tr>
</table>
</form>
</tr>
<?php
if($count <= 0) {
?>
<tr id="norecords">
<td colspan="7" align="center">No records found <a href="addnew" id="gridder_insert" class="gridder_insert"><img src="images2/insert.png" alt="Add New" title="Add New" /></a></td>
</tr>
<?php } else {
$i = 0;
foreach($record as $records) {
$i = $i + 1;
?>
<tr class="<?php if($i%2 == 0) { echo 'even'; } else { echo 'odd'; } ?>">
<!--<td><div class="grid_content sno"><span><?php echo $i; ?></span></div></td>-->
<td><div class="grid_content editable" title="<?php echo $records['full_name']; ?>"><span><?php echo $records['full_name']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("full_name|".$records['player_id']); ?>" value="<?php echo htmlentities($records['full_name']); ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['club_name']; ?>"><span><?php echo $records['club_name']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("club_name|".$records['player_id']); ?>" value="<?php echo $records['club_name']; ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['birthday']; ?>"><span><?php echo $records['birthday']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("birthday|".$records['player_id']); ?>" value="<?php echo $records['birthday']; ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['gender']; ?>"><span><?php echo $records['gender']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("gender|".$records['player_id']); ?>" value="<?php echo $records['gender']; ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['weight']; ?>"><span><?php echo $records['weight']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("weight|".$records['player_id']); ?>" value="<?php echo $records['weight']; ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['kata_kumite']; ?>"><span><?php echo $records['kata_kumite']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("kata_kumite|".$records['player_id']); ?>" value="<?php echo htmlentities($records['kata_kumite']); ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['individual_collective']; ?>"><span><?php echo $records['individual_collective']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("individual_collective|".$records['player_id']); ?>" value="<?php echo $records['individual_collective']; ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['heavey_light']; ?>"><span><?php echo $records['heavey_light']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("heavey_light|".$records['player_id']); ?>" value="<?php echo $records['heavey_light']; ?>" /></div></td>
<td><div class="grid_content editable" title="<?php echo $records['belt_color']; ?>"><span><?php echo $records['belt_color']; ?></span>
<select class="gridder_input select" name="<?php echo encrypt("belt_color|".$records['player_id']); ?>">
<?php foreach($department as $departments) { ?>
<option value="<?php echo $departments; ?>" <?php if($departments == $records['belt_color']) { echo 'selected="selected"'; } ?>><?php echo $departments; ?></option>
<?php } ?>
</select>
</div></td>
<td><div class="grid_content editable" title="<?php echo $records['country']; ?>"><span><?php echo $records['country']; ?></span><input type="text" class="gridder_input" name="<?php echo encrypt("country|".$records['player_id']); ?>" value="<?php echo $records['country']; ?>" /></div></td>
<!--<td><div class="grid_content editable"><span><?php echo date("Y/m/d", strtotime($records['posted_date'])); ?></span><input type="text" class="gridder_input datepicker" name="<?php echo encrypt("posted_date|".$records['player_id']); ?>" value="<?php echo date("Y/m/d", strtotime($records['posted_date'])); ?>" /></div></td>-->
<td style="text-align: center">
<a href="gridder_addnew" id="gridder_addnew" class="gridder_addnew"><img src="images2/insert.png" alt="Add New" title="Add New" /></a>
<a href="<?php echo encrypt($records['player_id']); ?>" class="gridder_delete"><img src="images2/delete.png" alt="Delete" title="Delete" /></a></td>
</tr>
<?php
}
}
?>
</table>
<?php
break;
case "addnew":
$full_name = isset($_POST['full_name']) ? html_entity_decode($_POST['full_name']) : '';
$club_name = isset($_POST['club_name']) ? $_POST['club_name'] : '';
$birthday = isset($_POST['birthday']) ? $_POST['birthday'] : '';
$gender = isset($_POST['gender']) ? $_POST['gender'] : '';
$weight = isset($_POST['weight']) ? $_POST['weight'] : '';
$kata_kumite = isset($_POST['kata_kumite']) ? $_POST['kata_kumite'] : '';
$individual_collective = isset($_POST['individual_collective']) ? $_POST['individual_collective'] : '';
$heavey_light = isset($_POST['heavey_light']) ? $_POST['heavey_light'] : '';
$profession = isset($_POST['profession']) ? $_POST['profession'] : '';
$country = isset($_POST['country']) ? $_POST['country'] : '';
$date_of_admission = isset($_POST['date']) ? $_POST['date_of_admission'] : '';
mysql_query("INSERT INTO `add_new_player` (full_name, club_name, birthday, gender, weight, kata_kumite, individual_collective, heavey_light, belt_color, country, date_of_admission) VALUES ('$full_name', '$club_name', '$birthday', $gender, '$weight', '$kata_kumite' , '$individual_collective','$heavey_light', '$profession','$country', '$date_of_admission') ");
break;
case "update":
$value = $_POST['value'];
$crypto = decrypt($_POST['crypto']);
$explode = explode('|', $crypto);
$columnName = $explode[0];
$rowId = $explode[1];
if($columnName == 'posted_date') { // Check the column is 'date', if yes convert it to date format
$datevalue = $value;
$value = date('Y-m-d', strtotime($datevalue));
}
$query = mysql_query("UPDATE `add_new_player` SET `$columnName` = '$value' WHERE player_id = '$rowId' ");
break;
case "delete":
$value = decrypt($_POST['value']);
$query = mysql_query("DELETE FROM `add_new_player` WHERE player_id = '$value' ");
break;
}
?>
<script>
$.ajax({
data: parameters,
type: "POST",
url: ajax_url,
timeout: 20000,
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
dataType: 'json',
success: callback
});
</script>
</body>
</html>
和另一个grid.php
<?php
include 'connection.php';
mysql_set_charset('UTF-8',$conn);
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
?>
<script type="text/javascript">
$(function (){
// Function for load the grid
function LoadGrid() {
var gridder = $('#as_gridder');
var UrlToPass = 'action=load';
gridder.html("loading....");
$.ajax({
url : 'ajax.php',
type : 'POST',
data : UrlToPass,
success: function(responseText) {
gridder.html(responseText);
}
});
}
// Seperate Function for datepiker() to save the value
function ForDatePiker(ThisElement) {
ThisElement.prev('span').html(ThisElement.val()).prop('title', ThisElement.val());
var UrlToPass = 'action=update&value='+ThisElement.val()+'&crypto='+ThisElement.prop('name');
$.ajax({
url : 'ajax.php',
type : 'POST',
data : UrlToPass
});
}
LoadGrid(); // Load the grid on page loads
// Execute datepiker() for date fields
$("body").delegate("input[type=text].datepicker", "focusin", function(){
var ThisElement = $(this);
$(this).datepicker({
dateFormat: 'yy/mm/dd',
onSelect: function() {
setTimeout(ForDatePiker(ThisElement), 500);
}
});
});
// Show the text box on click
$('body').delegate('.editable', 'click', function(){
var ThisElement = $(this);
ThisElement.find('span').hide();
ThisElement.find('.gridder_input').show().focus();
});
// Pass and save the textbox values on blur function
$('body').delegate('.gridder_input', 'blur', function(){
var ThisElement = $(this);
ThisElement.hide();
ThisElement.prev('span').show().html($(this).val()).prop('title', $(this).val());
var UrlToPass = 'action=update&value='+ThisElement.val()+'&crypto='+ThisElement.prop('name');
if(ThisElement.hasClass('datepicker')) {
return false;
}
$.ajax({
url : 'ajax.php',
type : 'POST',
data : UrlToPass
});
});
// Same as the above blur() when user hits the 'Enter' key
$('body').delegate('.gridder_input', 'keypress', function(e){
if(e.keyCode == '13') {
var ThisElement = $(this);
ThisElement.hide();
ThisElement.prev('span').show().html($(this).val()).prop('title', $(this).val());
var UrlToPass = 'action=update&value='+ThisElement.val()+'&crypto='+ThisElement.prop('name');
if(ThisElement.hasClass('datepicker')) {
return false;
}
$.ajax({
url : 'ajax.php',
type : 'POST',
data : UrlToPass
});
}
});
// Function for delete the record
$('body').delegate('.gridder_delete', 'click', function(){
var conf = confirm('Are you sure want to delete this record?');
if(!conf) {
return false;
}
var ThisElement = $(this);
var UrlToPass = 'action=delete&value='+ThisElement.attr('href');
$.ajax({
url : 'ajax.php',
type : 'POST',
data : UrlToPass,
success: function() {
LoadGrid();
}
});
return false;
});
// Add new record
// Add new record when the table is empty
$('body').delegate('.gridder_insert', 'click', function(){
$('#norecords').hide();
$('#addnew').slideDown();
return false;
});
// Add new record when the table in non-empty
$('body').delegate('.gridder_addnew', 'click', function(){
$('html, body').animate({ scrollTop: $('.as_gridder').offset().top}, 250); // Scroll to top gridder table
$('#addnew').slideDown();
return false;
});
// Cancel the insertion
$('body').delegate('.gridder_cancel', 'click', function(){
LoadGrid()
return false;
});
// For datepiker
$("body").delegate(".gridder_add.datepiker", "focusin", function(){
var ThisElement = $(this);
$(this).datepicker({
dateFormat: 'yy/mm/dd'
});
});
// Pass the values to ajax page to add the values
$('body').delegate('#gridder_addrecord', 'click', function(){
// Do insert vaidation here
if($('#full_name').val() == '') {
$('#full_name').focus();
alert('Enter the Full Name');
return false;
}
if($('#club_name').val() == '') {
$('#club_name').focus();
alert('Enter the Club Name');
return false;
}
if($('#birthday').val() == '') {
$('#birthday').focus();
alert('Enter the Birthday');
return false;
}
if($('#gender').val() == '') {
$('#gender').focus();
alert('Enter the Gender');
return false;
}
if($('#weight').val() == '') {
$('#weight').focus();
alert('Enter the Weight');
return false;
}
if($('#kata_kumite').val() == '') {
$('#kata_kumite').focus();
alert('Enter the kata Or kumite');
return false;
}
if($('#individual_collective').val() == '') {
$('#individual_collective').focus();
alert('Enter the individual Or collective');
return false;
}
if($('#heavey_light').val() == '') {
$('#heavey_light').focus();
alert('Enter the heavey Or light');
return false;
}
if($('#country').val() == '') {
$('#country').focus();
alert('Enter the country');
return false;
}
if($('#profession').val() == '') {
$('#profession').focus();
alert('Select the Profession');
return false;
}
/*if($('#date').val() == '') {
$('#date').focus();
alert('Select the Date');
return false;
}*/
// Pass the form data to the ajax page
var data = $('#gridder_addform').serialize();
$.ajax({
url : 'ajax.php',
type : 'POST',
data : data,
success: function() {
LoadGrid();
}
});
return false;
});
});
</script>
</head>
<body>
<div>
<span id="typed2" dir="rtl" lang="ar">
</span>
</div>
<br><br><br>
<div class="as_wrapper">
<!--<h1 class="h1"><a href="">Simple onClick edit in jQuery Ajax PHP – Simple PHP Data Grid</a></h1>-->
<div class="as_grid_container">
<div class="as_gridder" id="as_gridder"></div> <!-- GRID LOADER -->
</div>
</div>
</body>
和configuration.php文件
<?php
$host = "localhost"; // Your hostname
$username = "****"; // Your host username
$password = "****"; // Your host password
$db = "players"; // Your database name
mysql_connect($host, $username, $password) or die("Oops! Coudn't connect to server"); // Connect to the server
mysql_select_db($db) or die("Oops! Coudn't select Database"); // Select the database
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
header("Content-Type: text/html; charset=UTF-8");
?>
和functions.php
<?php
// Function for encryption
function encrypt($data) {
return base64_encode(base64_encode(base64_encode(strrev($data))));
}
// Function for decryption
function decrypt($data) {
return strrev(base64_decode(base64_decode(base64_decode($data))));
}
?>
问题是,当我尝试将这些表的任何行编辑为任何阿拉伯语单词时,它会给我问号字符 ???
像这张图片我该如何解决这个问题...我尝试添加
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
和
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
和
header("Content-Type: text/html; charset=UTF-8");
结果相同
注意:
我知道 mysql 已被弃用并将被删除,我正在使用 mysqli 来做到这一点,谢谢!
..任何帮助将不胜感激!
最佳答案
我通过添加 html_entity_decode
和 htmlentities
函数解决了我的问题
value="echo html_entity_decode(htmlentities($records['full_name']));"
与
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
在我的代码顶部!
关于php - 实时php ajax在mysql数据库中编辑阿拉伯语单词给我问号字符(???),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31503878/
我正在使用 Solr 以 3 种语言(阿拉伯语、法语和英语)索引文档,我使用了这个 fieldType :
当我在设备(它的语言是阿拉伯语)中运行我的应用程序时,我感到震惊的是,应该在正确方向的对象会向左移动,反之亦然。 后来我意识到是阿拉伯语本地化的自动布局导致了这个问题。 我以编程方式设置自动布局如下:
我想一个字母一个字母地拆分阿拉伯语单词,将它们涂成不同的颜色并在其上添加事件处理程序。 Image, how it looks like 我实现了关于绘画的部分想法,并处理了辅音字母 (harf),但
我关注 this教程,一切都很好,我预处理和训练我的模型但是当我想找到与以下代码的相似之处时: model = gensim.models.Word2Vec.load("wiki.fa.word2ve
我在使用阿拉伯语文本进行变音符号不敏感搜索时遇到问题。 我已经为相关表格测试了多种设置:utf8 和 utf16 编码以及 utf8_general_ci、utf16_general_ci 和 utf
我正在评估 NLTK 在分析和提取情绪的研究中处理阿拉伯文本的能力。 问题如下: NTLK 是否能够处理并允许分析阿拉伯文本? python 是否能够操作\标记阿拉伯文本? 我能否使用 Python
我正在使用 PHPMailer API 发送电子邮件。我想知道如何用阿拉伯语(非英语)发送主题 $mail->CharSet = 'utf-8'; $array= FetchTable('cos
在过去的 15 天或更长时间里,我一直在为一个奇怪的问题而苦苦挣扎。实际上我有一些阿拉伯语文本,但也有一些英文文本。 MY NAME "some arabic text" "some arabic t
我想用阿拉伯语制作一个 flutter 日期选择器,但有一些变化,这是我的代码: locale: Locale('ar', 'MA'), localizationsDelegates: [
我一直在努力为移动应用程序寻找良好的国际日历支持(包括 Hirji)。我的主要限制是 JVM 是 1.3 并且我们只有 AWT。有一个选项可以转移到另一个为我们提供 SWT 的 JVM,但我似乎找不到
我的应用程序是用英语和阿拉伯语两种不同版本开发的。 我在 iText 中使用 rowspan 和 colspan 创建了 pdf 表格,这在英文版中运行良好,但在阿拉伯语版 rowspan 中不起作用
我想将阿拉伯语单词分割成单个字符。基于直方图/配置文件,我假设我可以通过根据其基线(它具有相似的像素值)剪切/分割字符来进行分割过程。 但是,不幸的是,我仍然坚持构建适当的代码,以使其工作。 % Or
我在 JavaScript 函数中遇到了问题 var tDate = new Intl.DateTimeFormat("ar-US", { day: 'numeric', month: 'lo
我已经编写了 java 代码,我希望在 PdfPTable 上显示阿拉伯文字,该 PdfPTable 被用于 itext 文档以创建 PDF 文档 如附图“???”是阿拉伯代码' PdfPTable
简单地说,有没有支持Lucene.Net的Arabic Analyzer。因为我想索引大量的阿拉伯语 txt 文件。我可以使用标准分析器或空白分析器来解析阿拉伯文文件吗? analyzer = new
我正在使用 Vuejs,我想防止输入标签显示用户的字符并将其替换为我自己的字符(这是一些数字)。 我已经在计算中使用了@onchange 和 Watch 以及 getter 和 setter。问题是字
我正在研究 RTL 功能。我从数据库中获取字符串值作为 (f1 (firstname。但我想要 f1 (firstname) 这是我的 javascript 代码。下面的代码运行良好 EN语言。它不仅
我已经下载了阿拉伯语格式的阿拉伯语语言包和编辑器显示,但是当我纠正一些它不是用正确的方向写它总是从左方向开始,阿拉伯语总是从右方向开始但是这是行不通的.. 我的代码——
我使用的是 3.8.2 版本,插入新记录时,utf8 字符串在数据库中显示为问号 (?),但它会正确显示旧记录(使用 phpmyadmin 插入)。 这是我如何初始化 MySQLPool fun in
我有一个阿拉伯语短信模板,其中包含客户支持号码的占位符,并将占位符替换为实际电话号码(例如 +987654400)。替换时加号 (+) 错位在数字末尾,如 987654400+ 示例代码: >>> >
我是一名优秀的程序员,十分优秀!